403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.217.5
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/emacs-lisp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/emacs-lisp/comp-cstr.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(require 'cl-lib)
#@57 Like `cl--typeof-types' but with t as common supertype.
(defconst comp--typeof-types (mapcar #[257 "\300\301\"\207" [append (t)] 4 "\n\n(fn X)"] cl--typeof-types) (#$ . 102))
#@71 Likewise like `cl--all-builtin-types' but with t as common supertype.
(defconst comp--all-builtin-types (append cl--all-builtin-types '(t)) (#$ . 284))
#@68 compiler-macro for inlining `comp-cstr-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-p (and (memq (type-of cl-x) cl-struct-comp-cstr-tags) t)) nil] 9 (#$ . 442)])
(put 'comp-cstr-p 'compiler-macro 'comp-cstr-p--cmacro)
#@13 

(fn CL-X)
(defalias 'comp-cstr-p #[257 "\301!>\205	\302\207" [cl-struct-comp-cstr-tags type-of t] 3 (#$ . 769)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put comp-cstr-p side-effect-free error-free put comp-cstr cl-deftype-satisfies] 5)
#@74 compiler-macro for inlining `comp-cstr-typeset'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-typeset--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-typeset (progn (or (comp-cstr-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr cl-x))) (aref cl-x 1))) nil] 9 (#$ . 1038)])
(put 'comp-cstr-typeset 'compiler-macro 'comp-cstr-typeset--cmacro)
#@174 Access slot "typeset" of `comp-cstr' struct CL-X.
List of possible types the mvar can assume.
Each element cannot be a subtype of any other element of this slot.

(fn CL-X)
(defalias 'comp-cstr-typeset #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1] 5 (#$ . 1441)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-typeset side-effect-free t] 4)
#@73 compiler-macro for inlining `comp-cstr-valset'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-valset--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-valset (progn (or (comp-cstr-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr cl-x))) (aref cl-x 2))) nil] 9 (#$ . 1889)])
(put 'comp-cstr-valset 'compiler-macro 'comp-cstr-valset--cmacro)
#@154 Access slot "valset" of `comp-cstr' struct CL-X.
List of possible values the mvar can assume.
Integer values are handled in the `range' slot.

(fn CL-X)
(defalias 'comp-cstr-valset #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2] 5 (#$ . 2287)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-valset side-effect-free t] 4)
#@72 compiler-macro for inlining `comp-cstr-range'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-range--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-range (progn (or (comp-cstr-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr cl-x))) (aref cl-x 3))) nil] 9 (#$ . 2713)])
(put 'comp-cstr-range 'compiler-macro 'comp-cstr-range--cmacro)
#@78 Access slot "range" of `comp-cstr' struct CL-X.
Integer interval.

(fn CL-X)
(defalias 'comp-cstr-range #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 3] 5 (#$ . 3105)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-range side-effect-free t] 4)
#@70 compiler-macro for inlining `comp-cstr-neg'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-neg--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-neg (progn (or (comp-cstr-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr cl-x))) (aref cl-x 4))) nil] 9 (#$ . 3453)])
(put 'comp-cstr-neg 'compiler-macro 'comp-cstr-neg--cmacro)
#@95 Access slot "neg" of `comp-cstr' struct CL-X.
Non-nil if the constraint is negated

(fn CL-X)
(defalias 'comp-cstr-neg #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 4] 5 (#$ . 3835)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put comp-cstr-neg side-effect-free t defalias comp-cstr-shallow-copy copy-sequence] 4)
#@102 compiler-macro for inlining `make-comp-cstr'.

(fn CL-WHOLE &cl-quote &key TYPESET VALSET RANGE NEG)
(defalias 'make-comp-cstr--cmacro #[385 "\300\301\"\206\302A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203H\211@\306>\2030\211AA\262\202\307>A@\203?\310\262\202\311\312@\"\210\202\210\313\314\315\310	\310				&	\207" [plist-member :typeset (nil '(t)) :valset :range :neg (:typeset :valset :range :neg :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:typeset :valset :range :neg)" cl--defsubst-expand (typeset valset range neg) (cl-block make-comp-cstr (record 'comp-cstr typeset valset range neg))] 16 (#$ . 4253)])
(put 'make-comp-cstr 'compiler-macro 'make-comp-cstr--cmacro)
#@82 Constructor for objects of type `comp-cstr'.

(fn &key TYPESET VALSET RANGE NEG)
(defalias 'make-comp-cstr #[128 "\300\301\"\206\302A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203H\211@\306>\2030\211AA\262\202\307>A@\203?\310\262\202\311\312@\"\210\202\210\313\314%\207" [plist-member :typeset (nil (t)) :valset :range :neg (:typeset :valset :range :neg :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:typeset :valset :range :neg)" record comp-cstr] 11 (#$ . 4994)])
(byte-code "\300\301\302\303#\300\207" [function-put make-comp-cstr side-effect-free t] 4)
#@59 Constructor for objects of type `comp-cstr'.

(fn IRANGE)
(defalias 'comp-irange-to-cstr #[257 "\211C\300\301\302\211\302%\207" [record comp-cstr nil] 8 (#$ . 5615)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-irange-to-cstr side-effect-free t] 4)
#@58 Constructor for objects of type `comp-cstr'.

(fn VALUE)
(defalias 'comp-value-to-cstr #[257 "\211\250\211?\205	C\205\211BC\300\301\302\302%\207" [record comp-cstr nil] 10 (#$ . 5885)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-value-to-cstr side-effect-free t] 4)
#@57 Constructor for objects of type `comp-cstr'.

(fn TYPE)
(defalias 'comp-type-to-cstr #[257 "\211\300=\301=\206\211?\205C\205\302\205\303\304\305\306%\207" [null integer (nil) ((- . +)) record comp-cstr nil] 12 (#$ . 6180)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\207" [function-put comp-type-to-cstr side-effect-free t cl-struct-define comp-cstr "Internal representation of a type/value constraint." cl-structure-object record nil ((cl-tag-slot) (typeset '(t) :type list :documentation "List of possible types the mvar can assume.\nEach element cannot be a subtype of any other element of this slot.") (valset nil :type list :documentation "List of possible values the mvar can assume.\nInteger values are handled in the `range' slot.") (range nil :type list :documentation "Integer interval.") (neg nil :type boolean :documentation "Non-nil if the constraint is negated")) cl-struct-comp-cstr-tags] 11)
#@70 compiler-macro for inlining `comp-cstr-f-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-f-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-f-p (and (memq (type-of cl-x) cl-struct-comp-cstr-f-tags) t)) nil] 9 (#$ . 7139)])
(put 'comp-cstr-f-p 'compiler-macro 'comp-cstr-f-p--cmacro)
#@13 

(fn CL-X)
(defalias 'comp-cstr-f-p #[257 "\301!>\205	\302\207" [cl-struct-comp-cstr-f-tags type-of t] 3 (#$ . 7479)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put comp-cstr-f-p side-effect-free error-free put comp-cstr-f cl-deftype-satisfies] 5)
#@73 compiler-macro for inlining `comp-cstr-f-args'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-f-args--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-f-args (progn (or (comp-cstr-f-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-f cl-x))) (aref cl-x 1))) nil] 9 (#$ . 7757)])
(put 'comp-cstr-f-args 'compiler-macro 'comp-cstr-f-args--cmacro)
#@100 Access slot "args" of `comp-cstr-f' struct CL-X.
List of `comp-cstr' for its arguments.

(fn CL-X)
(defalias 'comp-cstr-f-args #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-f-tags type-of signal wrong-type-argument comp-cstr-f 1] 5 (#$ . 8159)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-f-args side-effect-free t] 4)
#@72 compiler-macro for inlining `comp-cstr-f-ret'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-f-ret--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-f-ret (progn (or (comp-cstr-f-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-f cl-x))) (aref cl-x 2))) nil] 9 (#$ . 8535)])
(put 'comp-cstr-f-ret 'compiler-macro 'comp-cstr-f-ret--cmacro)
#@76 Access slot "ret" of `comp-cstr-f' struct CL-X.
Returned value.

(fn CL-X)
(defalias 'comp-cstr-f-ret #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-f-tags type-of signal wrong-type-argument comp-cstr-f 2] 5 (#$ . 8931)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put comp-cstr-f-ret side-effect-free t defalias copy-comp-cstr-f copy-sequence] 4)
#@88 compiler-macro for inlining `make-comp-cstr-f'.

(fn CL-WHOLE &cl-quote &key ARGS RET)
(defalias 'make-comp-cstr-f--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202
\304>A@\203.\305\262\202
\306\307@\"\210\202
\210\310\311\312\305\305&\207" [plist-member :args :ret (:args :ret :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:args :ret)" cl--defsubst-expand (args ret) (cl-block make-comp-cstr-f (record 'comp-cstr-f args ret))] 12 (#$ . 9331)])
(put 'make-comp-cstr-f 'compiler-macro 'make-comp-cstr-f--cmacro)
#@68 Constructor for objects of type `comp-cstr-f'.

(fn &key ARGS RET)
(defalias 'make-comp-cstr-f #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202
\304>A@\203.\305\262\202
\306\307@\"\210\202
\210\310\311#\207" [plist-member :args :ret (:args :ret :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:args :ret)" record comp-cstr-f] 7 (#$ . 9930)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\207" [function-put make-comp-cstr-f side-effect-free t cl-struct-define comp-cstr-f "Internal constraint representation for a function." cl-structure-object record nil ((cl-tag-slot) (args nil :type list :documentation "List of `comp-cstr' for its arguments.") (ret nil :type (or comp-cstr comp-cstr-f) :documentation "Returned value.")) cl-struct-comp-cstr-f-tags] 11)
#@73 compiler-macro for inlining `comp-cstr-ctxt-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-p (and (memq (type-of cl-x) cl-struct-comp-cstr-ctxt-tags) t)) nil] 9 (#$ . 10788)])
(put 'comp-cstr-ctxt-p 'compiler-macro 'comp-cstr-ctxt-p--cmacro)
#@13 

(fn CL-X)
(defalias 'comp-cstr-ctxt-p #[257 "\301!>\205	\302\207" [cl-struct-comp-cstr-ctxt-tags type-of t] 3 (#$ . 11147)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put comp-cstr-ctxt-p side-effect-free error-free put comp-cstr-ctxt cl-deftype-satisfies] 5)
#@90 compiler-macro for inlining `comp-cstr-ctxt-union-typesets-mem'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-union-typesets-mem--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-union-typesets-mem (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 1))) nil] 9 (#$ . 11438)])
(put 'comp-cstr-ctxt-union-typesets-mem 'compiler-macro 'comp-cstr-ctxt-union-typesets-mem--cmacro)
#@123 Access slot "union-typesets-mem" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`comp-union-typesets'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-union-typesets-mem #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 1] 5 (#$ . 11932)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-ctxt-union-typesets-mem side-effect-free t] 4)
#@92 compiler-macro for inlining `comp-cstr-ctxt-common-supertype-mem'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-common-supertype-mem--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-common-supertype-mem (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 2))) nil] 9 (#$ . 12372)])
(put 'comp-cstr-ctxt-common-supertype-mem 'compiler-macro 'comp-cstr-ctxt-common-supertype-mem--cmacro)
#@127 Access slot "common-supertype-mem" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`comp-common-supertype'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-common-supertype-mem #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 2] 5 (#$ . 12876)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-ctxt-common-supertype-mem side-effect-free t] 4)
#@85 compiler-macro for inlining `comp-cstr-ctxt-subtype-p-mem'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-subtype-p-mem--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-subtype-p-mem (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 3))) nil] 9 (#$ . 13324)])
(put 'comp-cstr-ctxt-subtype-p-mem 'compiler-macro 'comp-cstr-ctxt-subtype-p-mem--cmacro)
#@117 Access slot "subtype-p-mem" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`comp-subtype-p-mem'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-subtype-p-mem #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 3] 5 (#$ . 13793)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-ctxt-subtype-p-mem side-effect-free t] 4)
#@92 compiler-macro for inlining `comp-cstr-ctxt-union-1-mem-no-range'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-union-1-mem-no-range--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-union-1-mem-no-range (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 4))) nil] 9 (#$ . 14217)])
(put 'comp-cstr-ctxt-union-1-mem-no-range 'compiler-macro 'comp-cstr-ctxt-union-1-mem-no-range--cmacro)
#@123 Access slot "union-1-mem-no-range" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`comp-cstr-union-1'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-union-1-mem-no-range #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 4] 5 (#$ . 14721)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-ctxt-union-1-mem-no-range side-effect-free t] 4)
#@89 compiler-macro for inlining `comp-cstr-ctxt-union-1-mem-range'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-union-1-mem-range--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-union-1-mem-range (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 5))) nil] 9 (#$ . 15165)])
(put 'comp-cstr-ctxt-union-1-mem-range 'compiler-macro 'comp-cstr-ctxt-union-1-mem-range--cmacro)
#@120 Access slot "union-1-mem-range" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`comp-cstr-union-1'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-union-1-mem-range #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 5] 5 (#$ . 15654)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-ctxt-union-1-mem-range side-effect-free t] 4)
#@88 compiler-macro for inlining `comp-cstr-ctxt-intersection-mem'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'comp-cstr-ctxt-intersection-mem--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block comp-cstr-ctxt-intersection-mem (progn (or (comp-cstr-ctxt-p cl-x) (signal 'wrong-type-argument (list 'comp-cstr-ctxt cl-x))) (aref cl-x 6))) nil] 9 (#$ . 16089)])
(put 'comp-cstr-ctxt-intersection-mem 'compiler-macro 'comp-cstr-ctxt-intersection-mem--cmacro)
#@118 Access slot "intersection-mem" of `comp-cstr-ctxt' struct CL-X.
Serve memoization for
`intersection-mem'.

(fn CL-X)
(defalias 'comp-cstr-ctxt-intersection-mem #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-comp-cstr-ctxt-tags type-of signal wrong-type-argument comp-cstr-ctxt 6] 5 (#$ . 16573)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put comp-cstr-ctxt-intersection-mem side-effect-free t defalias copy-comp-cstr-ctxt copy-sequence] 4)
#@192 compiler-macro for inlining `make-comp-cstr-ctxt'.

(fn CL-WHOLE &cl-quote &key UNION-TYPESETS-MEM COMMON-SUPERTYPE-MEM SUBTYPE-P-MEM UNION-1-MEM-NO-RANGE UNION-1-MEM-RANGE INTERSECTION-MEM)
(defalias 'make-comp-cstr-ctxt--cmacro #[385 "\300\301\"\206\302A@\300\303\"\206\304A@\300\305\"\206\306A@\300\307\"\206&\310A@\300\311\"\2060\312A@\300\313\"\206;\314A@\211\203j\211@\315>\203R\211AA\262\202?\316>A@\203a\317\262\202?\320\321@\"\210\202?\210\322\323\324\317\317&\207" [plist-member :union-typesets-mem (nil (make-hash-table :test #'equal)) :common-supertype-mem (nil (make-hash-table :test #'equal)) :subtype-p-mem (nil (make-hash-table :test #'equal)) :union-1-mem-no-range (nil (make-hash-table :test #'equal)) :union-1-mem-range (nil (make-hash-table :test #'equal)) :intersection-mem (nil (make-hash-table :test #'equal)) (:union-typesets-mem :common-supertype-mem :subtype-p-mem :union-1-mem-no-range :union-1-mem-range :intersection-mem :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:union-typesets-mem :common-supertype-mem :subtype-p-mem :union-1-mem-no-range :union-1-mem-range :intersection-mem)" cl--defsubst-expand (union-typesets-mem common-supertype-mem subtype-p-mem union-1-mem-no-range union-1-mem-range intersection-mem) (cl-block make-comp-cstr-ctxt (record 'comp-cstr-ctxt union-typesets-mem common-supertype-mem subtype-p-mem union-1-mem-no-range union-1-mem-range intersection-mem))] 20 (#$ . 17058)])
(put 'make-comp-cstr-ctxt 'compiler-macro 'make-comp-cstr-ctxt--cmacro)
#@172 Constructor for objects of type `comp-cstr-ctxt'.

(fn &key UNION-TYPESETS-MEM COMMON-SUPERTYPE-MEM SUBTYPE-P-MEM UNION-1-MEM-NO-RANGE UNION-1-MEM-RANGE INTERSECTION-MEM)
(defalias 'make-comp-cstr-ctxt #[128 "\300\301\"\206
\302\303\304\305\"DA@\300\306\"\206\302\303\304\305\"DA@\300\307\"\206+\302\303\304\305\"DA@\300\310\"\206:\302\303\304\305\"DA@\300\311\"\206I\302\303\304\305\"DA@\300\312\"\206Y\302\303\304\305\"DA@\211\203\210\211@\313>\203p\211AA\262\202]\314>A@\203\302\262\202]\315\316@\"\210\202]\210\317\320&\207" [plist-member :union-typesets-mem nil make-hash-table :test equal :common-supertype-mem :subtype-p-mem :union-1-mem-no-range :union-1-mem-range :intersection-mem (:union-typesets-mem :common-supertype-mem :subtype-p-mem :union-1-mem-no-range :union-1-mem-range :intersection-mem :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:union-typesets-mem :common-supertype-mem :subtype-p-mem :union-1-mem-no-range :union-1-mem-range :intersection-mem)" record comp-cstr-ctxt] 15 (#$ . 18646)])
(cl-struct-define 'comp-cstr-ctxt nil 'cl-structure-object 'record nil '((cl-tag-slot) (union-typesets-mem (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`comp-union-typesets'.") (common-supertype-mem (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`comp-common-supertype'.") (subtype-p-mem (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`comp-subtype-p-mem'.") (union-1-mem-no-range (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`comp-cstr-union-1'.") (union-1-mem-range (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`comp-cstr-union-1'.") (intersection-mem (make-hash-table :test #'equal) :type hash-table :documentation "Serve memoization for\n`intersection-mem'.")) 'cl-struct-comp-cstr-ctxt-tags 'comp-cstr-ctxt t)
#@79 Define some quick accessor to reduce code vergosity in BODY.

(fn &rest BODY)
(defalias 'with-comp-cstr-accessors '(macro . #[128 "\300\301BB\207" [cl-macrolet ((typeset (x) `(comp-cstr-typeset ,x)) (valset (x) `(comp-cstr-valset ,x)) (range (x) `(comp-cstr-range ,x)) (neg (x) `(comp-cstr-neg ,x)))] 4 (#$ . 20662)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-comp-cstr-accessors edebug-form-spec (form body) function-put lisp-indent-function defun] 4)
#@40 Return a deep copy of CSTR.

(fn CSTR)
(defalias 'comp-cstr-copy #[257 "\301\302\303\304!>\204\305\306\307D\"\210\310H!\311\303\304!>\204*\305\306\307D\"\210\312H!\313\314\304!>\204A\305\306\307\nD\"\210\315H!\316\304	!>\204X\305\306\307D\"\210\317H&\207" [cl-struct-comp-cstr-tags make-comp-cstr :typeset copy-sequence type-of signal wrong-type-argument comp-cstr 1 :valset 2 :range copy-tree 3 :neg 4] 13 (#$ . 21151)])
#@87 Return t if CSTR is equivalent to the nil type specifier or nil otherwise.

(fn CSTR)
(defalias 'comp-cstr-empty-p #[257 "\301!>\204\302\303\304D\"\210\211\305H?\205U\301!>\204%\302\303\304D\"\210\211\306H?\205U\301!>\204;\302\303\304D\"\210\211\307H?\205U\301!>\204Q\302\303\304D\"\210\211\310H?\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 2 3 4] 5 (#$ . 21608)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-empty-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@88 Return t if CSTR is equivalent to the `null' type specifier, nil otherwise.

(fn CSTR)
(defalias 'comp-cstr-null-p #[257 "\301!>\204\302\303\304D\"\210\211\305H?\205V\301!>\204%\302\303\304D\"\210\211\306H?\205V\301!>\204;\302\303\304D\"\210\211\307H?\205V\301!>\204Q\302\303\304D\"\210\211\310H\311\232\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 3 4 2 (nil)] 5 (#$ . 22176)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-null-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@173 Check if constraints CSTRS are all homogeneously negated or non-negated.
Return `pos' if they are all positive, `neg' if they are all
negated or nil otherwise.

(fn CSTRS)
(defalias 'comp-cstrs-homogeneous #[257 "\3012V\211\302\303\211:\2038@\262\304!>\204 \305\306\307D\"\210\310H\203-\211T\262\2021T\262A\262\202\211\303U\203G\311\301\312\"\266\202T\303U\203R\311\301\313\"\210\266\3020\207" [cl-struct-comp-cstr-tags --cl-block-nil-- nil 0 type-of signal wrong-type-argument comp-cstr 4 throw pos neg] 9 (#$ . 22757)])
#@98 Split constraints CSTRS into non-negated and negated.
Return them as multiple value.

(fn CSTRS)
(defalias 'comp-split-pos-neg #[257 "\211\301\211\211:\2038@\262\302!>\204\303\304\305D\"\210\306H\203+C\244\262\2021\211C\244\262A\262\202\211D\207" [cl-struct-comp-cstr-tags nil type-of signal wrong-type-argument comp-cstr 4] 9 (#$ . 23310)])
(defvar comp-ctxt nil)
#@38 Represent the integer immediate one.
(defvar comp-cstr-one (comp-value-to-cstr 1) (#$ . 23703))
#@29 Represent the superclass t.
(defvar comp-cstr-t (comp-type-to-cstr t) (#$ . 23805))
#@69 Sort and remove duplicates from VALSET then return it.

(fn VALSET)
(defalias 'comp-normalize-valset #[257 "\300\301\302\303#\304\"\207" [cl-sort cl-remove-duplicates :test eq #[514 "9\203\2119\203\231\2079\203\2119\204\300\2079\204&\2119\203&\301\207\302!\302!W\207" [t nil sxhash-equal] 5 "\n\n(fn X Y)"]] 6 (#$ . 23895)])
#@56 Union values present into VALSETS.

(fn &rest VALSETS)
(defalias 'comp-union-valsets #[128 "\300\301\302\"!\207" [comp-normalize-valset cl-reduce cl-union] 5 (#$ . 24244)])
#@56 Union values present into VALSETS.

(fn &rest VALSETS)
(defalias 'comp-intersection-valsets #[128 "\300\301\302\"!\207" [comp-normalize-valset cl-reduce cl-intersection] 5 (#$ . 24424)])
#@43 Sort TYPESET and return it.

(fn TYPESET)
(defalias 'comp-normalize-typeset #[257 "\300\301!\302\"\207" [cl-sort cl-remove-duplicates #[514 "\300!\300!\231\207" [symbol-name] 5 "\n\n(fn X Y)"]] 4 (#$ . 24618)])
#@75 Return a list of pairs (supertype . hierarchy-level) for TYPE.

(fn TYPE)
(defalias 'comp-supertypes #[257 "\3012]\302\302:\203Y@\262\211\302G\302:\203F@\262\303Y\203F=\203.\304\262\203;\211BC\244\262A\262S\262\202\203P\305\301\"\210\266A\262\202\266\3020\207" [comp--typeof-types --cl-block-outer-- nil 0 t throw] 11 (#$ . 24838)])
#@69 Return the first common supertype of TYPE1 TYPE2.

(fn TYPE1 TYPE2)
(defalias 'comp-common-supertype-2 #[514 "\300\301!\301!\302\303$\211\205\304\305\"@\207" [cl-intersection comp-supertypes :key car cl-reduce #[514 "AAV\203\n\207\207" [] 4 "\n\n(fn X Y)"]] 7 (#$ . 25217)])
#@63 Return the first common supertype of TYPES.

(fn &rest TYPES)
(defalias 'comp-common-supertype #[128 "\302\303!	>\204\304\305\306D\"\210\307H\"\2061\310\311\312\"\303!	>\204-\304\305\306D\"\210\307H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 2 puthash cl-reduce comp-common-supertype-2] 8 (#$ . 25507)])
#@77 Return t if TYPE1 is a subtype of TYPE2 or nil otherwise.

(fn TYPE1 TYPE2)
(defalias 'comp-subtype-p #[514 "B\302\303!	>\204\304\305\306D\"\210\307H\"\2066\310\311\"=\303!	>\2042\304\305\306D\"\210\307H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 10 (#$ . 25892)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-subtype-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@57 Union types present into TYPESETS.

(fn &rest TYPESETS)
(defalias 'comp-union-typesets #[128 "\303\304!	>\204\305\306\307D\"\210\310H\"\206r\311\312\313\"\314\n\314:\203Z@\262\314\314:\203G@\262\211>\203@\211\262A\262\202-\203QB\262\266A\262\202!\315!\266\204\304!	>\204n\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags comp--typeof-types gethash type-of signal wrong-type-argument comp-cstr-ctxt 1 puthash apply append nil comp-normalize-typeset] 12 (#$ . 26417)])
#@43 Intersect typesets T1 and T2.

(fn T1 T2)
(defalias 'comp-intersect-two-typesets #[514 "D\300D\300\211:\203V@\262:\203V@\262\301\300C\300:\203B@\240\210\302\303\304\"\"\203;\242B\262A\262\202 \211\237\266\203!\244\262A\262A\262\202	\211\237\207" [nil reverse cl-some make-closure #[257 "\300\242B\303\304	!\n>\204\305\306\307	D\"\210	\310H\"\2069\311\312\"=\304	!\n>\2045\305\306\307	D\"\210	\310H#\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"]] 15 (#$ . 26952)])
#@61 Intersect types present into TYPESETS.

(fn &rest TYPESETS)
(defalias 'comp-intersect-typesets #[128 "\300\301\"?\205\302\303\"\203\211@\207\304\305\306\"!\207" [cl-some null length= 1 comp-normalize-typeset cl-reduce comp-intersect-two-typesets] 5 (#$ . 27581)])
#@10 

(fn X)
(defalias 'comp-star-or-num-p #[257 "\211\247\206\211\300=\207" [*] 3 (#$ . 27858)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-star-or-num-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@10 

(fn X)
(defalias 'comp-range-1+ #[257 "\2119\203\207\211T\207" [] 2 (#$ . 28104)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-range-1+ speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@10 

(fn X)
(defalias 'comp-range-1- #[257 "\2119\203\207\211S\207" [] 2 (#$ . 28336)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-range-1- speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn X Y)
(defalias 'comp-range-+ #[514 "B\211\300\235\203\301\207\211:\2038\211\242\211\302=\203\302\207\243\211\302=\203$\302\207\303=\203,\303\207\211\303=\2034\303\207\\\207\\\207" [((- . +) (+ . -)) 63 - +] 7 (#$ . 28568)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-range-+ speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn X Y)
(defalias 'comp-range-- #[514 "B\211\300\267\202\301\207\302\207\303\207\211:\203<\211\242\211\302=\203\302\207\243\211\303=\203(\302\207\303=\2030\303\207\211\302=\2038\303\207Z\207Z\207" [#s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((- . -) 9 (+ . +) 9 (+ . -) 11 (- . +) 13)) 63 + -] 7 (#$ . 28958)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-range-- speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn X Y)
(defalias 'comp-range-< #[514 "\300\267\202\n\301\207\302\207\211\303\267\202\302\207\301\207W\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (+ 6 - 8)) nil t #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (+ 16 - 18))] 4 (#$ . 29477)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-range-< speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@38 Smallest entry in RANGE.

(fn RANGE)
(defalias 'comp-cstr-smallest-in-range #[257 "\211@@\207" [] 2 (#$ . 29957)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-smallest-in-range speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@37 Greater entry in RANGE.

(fn RANGE)
(defalias 'comp-cstr-greatest-in-range #[257 "\300!@A\207" [last] 3 (#$ . 30231)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-greatest-in-range speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@77 Combine integer intervals RANGES by union set operation.

(fn &rest RANGES)
(defalias 'comp-range-union #[128 "\300\301\"\302\303\"\302\304\"\305\306\211\307\244\310\311\312$\306\211:\203a@\262\211A\262\242\262\313=\203@\305U\2039\211\262T\262\202Z\314U\203V\2119\204P\211T\262BB\262S\262A\262\202\315!\207" [apply append mapcar #[257 "\211@\2119\204\211S\262\300B\207" [l] 3 "\n\n(fn X)"] #[257 "\211A\300B\207" [h] 3 "\n\n(fn X)"] 0 nil cl-sort comp-range-< :key car l 1 reverse] 12 (#$ . 30510)])
#@70 Combine integer intervals RANGES by intersecting.

(fn &rest RANGES)
(defalias 'comp-range-intersection #[128 "\3002s\301\302\"G\303\304\"\303\305\"\306\307\211\310\244\311\312\313$\307\211\314\315\f\"\203,\316\300\307\"\210:\203m@\262\211A\262\242\262\317=\203TT\262	U\203f\211\262\202f	U\203bBB\262S\262A\262\202,\320!\266\2120\207" [--cl-block-nil-- apply append mapcar #[257 "\211@\300B\207" [l] 3 "\n\n(fn X)"] #[257 "\211A\300B\207" [h] 3 "\n\n(fn X)"] 0 nil cl-sort comp-range-< :key car cl-some null throw l reverse] 14 (#$ . 31054)])
#@33 Negate range RANGE.

(fn RANGE)
(defalias 'comp-range-negation #[257 "\211\204\300\207\3012Z\302\303\302\211:\203A@\262\211A\262\242\262\211\303=\2047\2119\2040\211T\262SBB\262\262A\262\202\304=\204OT\304BB\262\305\301\306!\"\266\3020\207" [((- . +)) --cl-block-nil-- nil - + throw reverse] 10 (#$ . 31641)])
#@65 Support range comparison functions.

(fn DST OLD-DST EXT-RANGE)
(defalias 'comp-cstr-set-cmp-range #[771 "\211\203\235\301!>\204\302\303\304D\"\210\305\306\307\301!>\204(\302\303\304D\"\210\305H\"\2050\310I\210\301!>\204A\302\303\304D\"\210\311\312I\210\301!>\204U\302\303\304D\"\210\313\301!>\204g\302\303\304D\"\210\313H\203\206\314\301!>\204~\302\303\304D\"\210\313H\"\202\207I\210\301!>\204\230\302\303\304D\"\210\315\312I\207\301!>\204\254\302\303\304D\"\210\305\301!>\204\276\302\303\304D\"\210\305HI\210\301!>\204\322\302\303\304D\"\210\311\301!>\204\344\302\303\304D\"\210\311HI\210\301!>\204\370\302\303\304D\"\210\313\301!>\204\n\302\303\304D\"\210\313HI\210\301!>\204\302\303\304D\"\210\315\301!>\2040\302\303\304D\"\210\315HI\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] (float) 2 nil 3 comp-range-intersection 4] 11 (#$ . 31988)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-set-cmp-range speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@39 

(fn DST SRC1 SRC2 &rest RANGE-BODY)
(defalias 'comp-cstr-set-range-for-arithm '(macro . #[899 "\300\301\302\303\304D\305BB\306\307\310	DD\311\310	DDD\312\313\303\304
D\314\310D\fBBBBEEFD\207" [with-comp-cstr-accessors if (or (neg src1) (neg src2)) setf typeset ('(number)) when-let r1 range r2 let* ((l1 (comp-cstr-smallest-in-range r1)) (l2 (comp-cstr-smallest-in-range r2)) (h1 (comp-cstr-greatest-in-range r1)) (h2 (comp-cstr-greatest-in-range r2))) (when (cl-some (lambda (x) (comp-subtype-p 'float x)) (append (typeset src1) (typeset src2))) '(float))] 17 (#$ . 33406)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put comp-cstr-set-range-for-arithm edebug-form-spec (range-body) function-put lisp-indent-function defun] 4)
#@49 Sum SRC1 and SRC2 into DST.

(fn DST SRC1 SRC2)
(defalias 'comp-cstr-add-2 #[771 "\301!>\204\302\303\304D\"\210\305H\204*\301!>\204$\302\303\304D\"\210\211\305H\203>\301!>\2049\302\303\304D\"\210\306\307I\207\301!>\204M\302\303\304D\"\210\310H\211\205f\301!>\204c\302\303\304D\"\210\310H\211\205\226\211@@\262\211@@\262\311!@A\262\311!@A\262\301	!>\204\227\302\303\304D\"\210\306\312\313\314\301
!>\204\256\302\303\304D\"\210\f\306H\301
!>\204\303\302\303\304D\"\210\f\306H\"\"\205\315\315I\210\301	!>\204\340\302\303\304D\"\210\310B\211\316\235\203\364\266\317\202:\211:\2035\211\242\211\320=\203\266\320\202:\243\211\320=\203\266\320\202:\321=\203!\266\321\202:\211\321=\203-\266\321\202:\\\266\205\202:\\\266\203B\211\316\235\203K\266\317\202\221\211:\203\214\211\242\211\320=\203^\266\320\202\221\243\211\320=\203l\266\320\202\221\321=\203x\266\321\202\221\211\321=\203\204\266\321\202\221\\\266\205\202\221\\\266\203BCI\266\204\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 4 1 (number) 3 last cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] append (float) ((- . +) (+ . -)) 63 - +] 19 (#$ . 34169)])
#@54 Subtract SRC1 and SRC2 into DST.

(fn DST SRC1 SRC2)
(defalias 'comp-cstr-sub-2 #[771 "\301!>\204\302\303\304D\"\210\305H\204*\301!>\204$\302\303\304D\"\210\211\305H\203>\301!>\2049\302\303\304D\"\210\306\307I\207\301!>\204M\302\303\304D\"\210\310H\211\205f\301!>\204c\302\303\304D\"\210\310H\211\205\211@@\262\211@@\262\311!@A\262\311!@A\262\301	!>\204\227\302\303\304D\"\210\306\312\313\314\301
!>\204\256\302\303\304D\"\210\f\306H\301
!>\204\303\302\303\304D\"\210\f\306H\"\"\205\315\315I\210\301	!>\204\340\302\303\304D\"\210\310\316\"\316\"\317=\204\371\211\317=\203\377\266\320\202BC\266\202I\266\204\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 4 1 (number) 3 last cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] append (float) #[514 "B\211\300\267\202\301\207\302\207\303\207\211:\203<\211\242\211\302=\203\302\207\243\211\303=\203(\302\207\303=\2030\303\207\211\302=\2038\303\207Z\207Z\207" [#s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((- . -) 9 (+ . +) 9 (+ . -) 11 (- . +) 13)) 63 + -] 7 "\n\n(fn X Y)"] 63 ((- . +))] 19 (#$ . 35680)])
#@146 As `comp-cstr-union' but escluding the irange component.
All SRCS constraints must be homogeneously negated or non-negated.

(fn DST &rest SRCS)
(defalias 'comp-cstr-union-homogeneous-no-range #[385 "\301!>\204\302\303\304D\"\210\305\306\307\310\311\"\"I\210\301!>\204*\302\303\304D\"\210\312\313\310\314\"\315\306\316\"\317\320#\321C\321:\203y@\240\210\322\323\"\301\n!>\204[\302\303\304\fD\"\210	\305H\321\306\324$?\266\203\203r\242B\262A\262\202<\211\237\266\204!I\210\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 apply comp-union-typesets mapcar comp-cstr-typeset 2 comp-normalize-valset comp-cstr-valset cl-remove-duplicates append :test equal nil make-closure #[257 "\303\300\242!B\304\303	!\n>\204\305\306\307	D\"\210	\310H\"\206;\311\312\"=\303	!\n>\2047\305\306\307	D\"\210	\310H#\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags type-of gethash signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] cl-some] 17 (#$ . 37154)])
#@219 Combine SRCS by union set operation setting the result in DST.
Do range propagation when RANGE is non-nil.
All SRCS constraints must be homogeneously negated or non-negated.
DST is returned.

(fn RANGE DST &rest SRCS)
(defalias 'comp-cstr-union-homogeneous #[642 "\301\302#\210\303!>\204\304\305\306D\"\210\307\2050\303@!>\204,\304\305\306@D\"\210@\307HI\210\303!>\204A\304\305\306D\"\210\310\311\303!>\204T\304\305\306D\"\210\312H\313\301\314$?\266\203\205t\203s\301\315\316\317\"\"\202t\320I\210\207" [cl-struct-comp-cstr-tags apply comp-cstr-union-homogeneous-no-range type-of signal wrong-type-argument comp-cstr 4 3 #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags integer gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] 1 nil cl-some comp-range-union mapcar comp-cstr-range ((- . +))] 13 (#$ . 38218)])
#@193 Combine SRCS by union set operation setting the result in DST.
Do range propagation when RANGE is non-nil.
Non memoized version of `comp-cstr-union-1'.
DST is returned.

(fn RANGE &rest SRCS)
(defalias 'comp-cstr-union-1-no-mem #[385 "\3012\356\302\303\304\305\211\211%\306\307!\211\203!\310\311$\210\312\301\"\210\210\313!\211@A@\310\311\302\303\304\305\211\211%$\310\311	\302\303\304\305\211\314%$\315!>\204S\316\317\303D\"\210\320H\203z\321\322\323\"\315!>\204n\316\317\303D\"\210\320H\"\203z!\210\315!>\204\211\316\317\303D\"\210\211\320H\203B\321\322\324\"\315!>\204\243\316\317\303D\"\210\320H\"\203B\315!>\204\273\316\317\303	D\"\210\320\315!>\204\316\316\317\303D\"\210\320HI\210\315!>\204\344\316\317\303	D\"\210\325\315!>\204\367\316\317\303D\"\210\325HI\210\315!>\204
\316\317\303	D\"\210\326\315!>\204 \316\317\303D\"\210\326HI\210\315!>\2046\316\317\303	D\"\210\327\305I\210\312\301\"\210\330\315\211!>\204S\316\317\303D\"\210\325H\"\315!>\204f\316\317\303D\"\210\326H\205m\331\244\332\322\333\"\315!>\204\203\316\317\303D\"\210\320H\"\203\220!\210\210\315!>\204\240\316\317\303D\"\210\325H\203\377\315!>\204\265\316\317\303D\"\210\211\325H\203\377\334\315!>\204\313\316\317\303D\"\210\325H\315!>\204\335\316\317\303D\"\210\325H\"\315!>\204\360\316\317\303D\"\210\325H\232\203\377!\210\202^\332\322\335\"\315!>\204\316\317\303D\"\210\320H\"\203\"!\210\202^\315!>\2041\316\317\303D\"\210\211\325\336\315!>\204D\316\317\303D\"\210\325H\315!>\204X\316\317\303D\"\210\325H\"I\210\203\377\315!>\204r\316\317\303D\"\210\326H\203\275\315!>\204\207\316\317\303D\"\210\211\326H\203\275\315!>\204\234\316\317\303D\"\210\326H\315!>\204\256\316\317\303D\"\210\326H\232\203\275!\210\202\377\315!>\204\314\316\317\303D\"\210\211\326\337\340\337\315!>\204\342\316\317\303D\"\210\326H!\315!>\204\367\316\317\303	D\"\210\326H\"!I\210\211\315!>\204\316\317\303D\"\210\211\320H?\205U\315!>\204%\316\317\303D\"\210\211\325H?\205U\315!>\204;\316\317\303D\"\210\211\326H?\205U\315!>\204Q\316\317\303D\"\210\211\327H?\262\203\360\315!>\204k\316\317\303	D\"\210\320\315!>\204~\316\317\303D\"\210\320HI\210\315!>\204\224\316\317\303	D\"\210\325\315!>\204\247\316\317\303D\"\210\325HI\210\315!>\204\275\316\317\303	D\"\210\326\315!>\204\320\316\317\303D\"\210\326HI\210\315!>\204\346\316\317\303	D\"\210\327\305I\266\202\221\315!>\204\316\317\303	D\"\210\320\315!>\204\316\317\303D\"\210\320HI\210\315!>\204)\316\317\303	D\"\210\325\315!>\204;\316\317\303D\"\210\325HI\210\315!>\204Q\316\317\303	D\"\210\326\315!>\204c\316\317\303D\"\210\326HI\210\315!>\204y\316\317\303	D\"\210\327\315!>\204\213\316\317\303D\"\210\327HI\266\315!>\204\240\316\317\303D\"\210\327H\203\351\315!>\204\265\316\317\303D\"\210\320H\204\351\315!>\204\312\316\317\303D\"\210\325H\204\351\315!>\204\337\316\317\303D\"\210\326H\204\351\211!\210\210\211\2620\207" [cl-struct-comp-cstr-tags --cl-block-comp-cstr-union-1-no-mem-- record comp-cstr (t) nil #[257 "\301!>\204\302\303\304D\"\210\211\305\306I\210\301!>\204#\302\303\304D\"\210\211\307\310I\210\301!>\2047\302\303\304D\"\210\211\311\310I\210\301!>\204K\302\303\304D\"\210\211\312\310I\210\313\314\"\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 (t) 2 nil 3 4 throw --cl-block-comp-cstr-union-1-no-mem--] 5 "\n\n(fn DST)"] comp-cstrs-homogeneous apply comp-cstr-union-homogeneous throw comp-split-pos-neg t type-of signal wrong-type-argument 1 cl-every make-closure #[257 "\302\303\304\"\305\306\300!	>\204\307\310\311\300D\"\210\300\312H\306\300!	>\204'\307\310\311\300D\"\210\300\313H\205.\314\"\"\207" [V0 cl-struct-comp-cstr-tags cl-some make-closure #[257 "\300B\303\304	!\n>\204\305\306\307	D\"\210	\310H\"\2068\311\312\"=\304	!\n>\2044\305\306\307	D\"\210	\310H#\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn Y)"] append type-of signal wrong-type-argument comp-cstr 1 3 (integer)] 9 "\n\n(fn X)"] #[257 "\302\303\304\"\305\306\300!	>\204\307\310\311\300D\"\210\300\312H\306\300!	>\204'\307\310\311\300D\"\210\300\313H\205.\314\"\"\207" [V0 cl-struct-comp-cstr-tags cl-some make-closure #[257 "\300B\303\304	!\n>\204\305\306\307	D\"\210	\310H\"\2068\311\312\"=\304	!\n>\2044\305\306\307	D\"\210	\310H#\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn Y)"] append type-of signal wrong-type-argument comp-cstr 1 3 (integer)] 9 "\n\n(fn X)"] 2 3 4 mapcar (integer) cl-some #[257 "\301\302\303\"\300\"\207" [V0 cl-some make-closure #[257 "\211\300=?\205A\211\300B\303\304	!\n>\204\305\306\307	D\"\210	\310H\"\206?\311\312\"=\304	!\n>\204;\305\306\307	D\"\210	\310H#\266\203\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn Y)"]] 5 "\n\n(fn X)"] comp-union-valsets #[257 "\302\303\304\"\305\306\211\300!	>\204\307\310\311\300D\"\210\300\312H\"\"\207" [V0 cl-struct-comp-cstr-tags cl-some make-closure #[257 "\211\300B\303\304	!\n>\204\305\306\307	D\"\210	\310H\"\2068\311\312\"=\304	!\n>\2044\305\306\307	D\"\210	\310H#\207" [V0 comp-ctxt cl-struct-comp-cstr-ctxt-tags gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn Y)"] mapcar type-of signal wrong-type-argument comp-cstr 2] 9 "\n\n(fn X)"] cl-nset-difference comp-range-negation comp-range-union] 18 (#$ . 39254)])
#@152 Combine SRCS by union set operation setting the result in DST.
Do range propagation when RANGE is non-nil.
DST is returned.

(fn RANGE DST &rest SRCS)
(defalias 'comp-cstr-union-1 #[642 "\203\303!	>\204\304\305\306D\"\210\307H\202+\303!	>\204(\304\305\306D\"\210\310H\311\"\206@\312\313\314\"\315\316##\303!\n>\204P\304\305\317D\"\210\320\303!\n>\204a\304\305\317D\"\210\320HI\210\303!\n>\204v\304\305\317D\"\210\321\303!\n>\204\207\304\305\317D\"\210\321HI\210\303!\n>\204\234\304\305\317D\"\210\322\303!\n>\204\255\304\305\317D\"\210\322HI\210\303!\n>\204\302\304\305\317D\"\210\310\303!\n>\204\323\304\305\317D\"\210\310HI\210\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr-ctxt 5 4 gethash puthash mapcar comp-cstr-copy apply comp-cstr-union-1-no-mem comp-cstr 1 2 3] 11 (#$ . 45204)])
#@176 Combine SRCS by intersection set operation setting the result in DST.
All SRCS constraints must be homogeneously negated or non-negated.
DST is returned.

(fn DST &rest SRCS)
(defalias 'comp-cstr-intersection-homogeneous #[385 "\3012\201\302\303\"\203L\304!>\204\305\306\307D\"\210\310\311I\210\304!>\204.\305\306\307D\"\210\312\311I\210\304!>\204B\305\306\307D\"\210\313\311I\210\314\301\"\210\304!>\204[\305\306\307D\"\210\315\205v\304@!>\204r\305\306\307@D\"\210@\315HI\210\304!>\204\207\305\306\307D\"\210\313\316\317\320\321\"\"I\210\304!>\204\242\305\306\307D\"\210\310\322\311\211:\203\375@\262\323\304!>\204\301\305\306\307D\"\210\310H\311C\311:\203\355@\240\210\324\325\326\"\327\"\"\203\346\242B\262A\262\202\307\211\237\266\203!\244\262A\262\202\250\211\237\266\203!I\210\304!>\204\305\306\307D\"\210\312\302\330\304!>\204(\305\306\307D\"\210\313H\"?\205}\316\331\311\211:\203x@\262\304!>\204M\305\306\307D\"\210\312H\206m\302\332\304!>\204e\305\306\307D\"\210\313H\"\205m\333B\262A\262\2025\211\237\266\203\"I\2100\207" [cl-struct-comp-cstr-tags --cl-block-comp-cstr-intersection-homogeneous-- cl-some comp-cstr-empty-p type-of signal wrong-type-argument comp-cstr 2 nil 3 1 throw 4 apply comp-intersect-typesets mapcar comp-cstr-typeset comp-normalize-valset reverse cl-every make-closure #[257 "\302\300\242\303!	>\204\304\305\306D\"\210\307H\"\2061\310\311\312\300\"\303!	>\204-\304\305\306D\"\210\313H\"\207" [V0 cl-struct-comp-cstr-tags memql type-of signal wrong-type-argument comp-cstr 2 cl-some make-closure #[257 "\301\300\242\"\207" [V0 cl-typep] 4 "\n\n(fn TYPE)"] 1] 7 "\n\n(fn S)"] remq #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags integer gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn TYPE)"] comp-range-intersection #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags integer gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn S)"] ((- . +))] 17 (#$ . 46128)])
#@119 Combine SRCS by intersection set operation.
Non memoized version of `comp-cstr-intersection-no-mem'.

(fn &rest SRCS)
(defalias 'comp-cstr-intersection-no-mem #[128 "\3032\303\304\305\306\307\211\211%\310\311!\211\2030\211\312=\203$\313\314\315$\210\202+\313\316#\210\317\303\"\210\210\320!\211@A@\313\316\304\305\306\307\211\211%#\313\316\304\305\306\307\211\211%#\321!>\204^\322\323\305D\"\210\324H\325\232\203\213\321!>\204w\322\323\305	D\"\210\324\321!>\204\211\322\323\305D\"\210\324HI\210\321!>\204\237\322\323\305	D\"\210\326\321!>\204\261\322\323\305D\"\210\326HI\210\321!>\204\307\322\323\305	D\"\210\327\321!>\204\331\322\323\305D\"\210\327HI\210\321!>\204\357\322\323\305	D\"\210\330\315I\210\321!>\204\322\323\305	D\"\210\326H\204\205\321!>\204\322\323\305	D\"\210\327H\204\205\321!>\2046\322\323\305	D\"\210\330H\203\205\321!>\204N\322\323\305	D\"\210\324H\331\232\203\205\321!>\204h\322\323\305	D\"\210\324\307I\210\321!>\204\322\323\305	D\"\210\330\307I\210\317\303\"\210\332\333\334\"\321!>\204\240\322\323\305D\"\210\324H\"\203\254!\210\321!>\204\273\322\323\305D\"\210\211\324H\307:\203\257@\262\335\321!>\204\331\322\323\305D\"\210\324H!\307:\203\246@\262=\204\237B\336\321	!\n>\204\322\323\337	D\"\210	\327H\"\206%\340\341\"=\321	!\n>\204!\322\323\337	D\"\210	\327H#\266\203\203\237\3422\236\307\343!\307\211\211:\205\233@\262\211A\262\242\262\203P\211C\244\262=\203\212\321!>\204h\322\323\305
D\"\210\n\324\344\321!>\204}\322\323\305D\"\210
\324H\"I\210\317\342\307\"\210=\203\224\315\262A\262\2025\266\2050\210A\262\202\336\266A\262\202\277\266\321!>\204\300\322\323\305D\"\210\327\345\321!>\204\323\322\323\305D\"\210\327H\346\321!>\204\350\322\323\305D\"\210\327H!\"I\210\321!>\204\376\322\323\305D\"\210\326\347\321!>\204\322\323\305D\"\210\326H\321!>\204$\322\323\305D\"\210\326H\"I\210\321!>\204;\322\323\305	D\"\210\324\321!>\204N\322\323\305D\"\210\324HI\210\321!>\204d\322\323\305	D\"\210\326\321!>\204w\322\323\305D\"\210\326HI\210\321!>\204\215\322\323\305	D\"\210\327\321!>\204\240\322\323\305D\"\210\327HI\210\321!>\204\266\322\323\305	D\"\210\330\307I\266\262\2620\207" [cl-struct-comp-cstr-tags comp-ctxt cl-struct-comp-cstr-ctxt-tags --cl-block-comp-cstr-intersection-no-mem-- record comp-cstr (t) nil #[257 "\301!>\204\302\303\304D\"\210\211\305\306I\210\301!>\204#\302\303\304D\"\210\211\307\306I\210\301!>\2047\302\303\304D\"\210\211\310\306I\210\301!>\204K\302\303\304D\"\210\211\311\306I\210\312\313\"\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 nil 2 3 4 throw --cl-block-comp-cstr-intersection-no-mem--] 5 "\n\n(fn DST)"] comp-cstrs-homogeneous neg apply comp-cstr-union-homogeneous t comp-cstr-intersection-homogeneous throw comp-split-pos-neg type-of signal wrong-type-argument 1 (t) 2 3 4 (t) cl-some make-closure #[257 "\211\302\300!	>\204\303\304\305\300D\"\210\300\306H>\207" [V0 cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1] 6 "\n\n(fn TY)"] copy-sequence gethash comp-cstr-ctxt puthash comp-common-supertype-2 --cl-block-nil-- comp-supertypes cl-union comp-range-intersection comp-range-negation cl-set-difference] 24 (#$ . 48505)])
#@85 Return t if one and only one immediate value can be extracted from CSTR.

(fn CSTR)
(defalias 'comp-cstr-imm-vld-p #[257 "\301!>\204\302\303\304D\"\210\211\305H?\205\207\301!>\204%\302\303\304D\"\210\211\306H?\205\207\301!>\204;\302\303\304D\"\210\211\307H\301!>\204M\302\303\304D\"\210\310HGG\305U\203d\211\311U\203d\266\312\207\311U\205\205\211\305U\205\205@@@A\250\205\203\211\250\205\203U\266\202\266\204\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 1 4 2 3 0 t] 9 (#$ . 51972)])
#@122 Return the immediate value of CSTR.
`comp-cstr-imm-vld-p' *must* be satisfied before calling
`comp-cstr-imm'.

(fn CSTR)
(defalias 'comp-cstr-imm #[257 "\301!>\204\302\303\304D\"\210\211\305H\306\307\"\203\211@\207\301!>\204+\302\303\304D\"\210\310H@@\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2 length= 1 3] 6 (#$ . 52530)])
(byte-code "\300\301\302\303#\300\207" [function-put comp-cstr-imm gv-expander #[385 "\300\301\302$\207" [gv--defsetter comp-cstr-imm #[514 "\300\301\302D\303\304D\305\306D\307\310\n\211ED\257\303\304D\305\311D\307\nD\257FD\207" [with-comp-cstr-accessors if integerp setf typeset nil range list cons valset] 13 "\n\n(fn VAL CSTR)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4)
#@52 Return t if CSTR is certainly a fixnum.

(fn CSTR)
(defalias 'comp-cstr-fixnum-p #[257 "\303!>\204\304\305\306D\"\210\211\307H?\205R\303!>\204%\304\305\306D\"\210\211\310H\211\205P\211@@\311!@A\312=\206I	W\206I\211\313=\206I\211\nV?\205N\314\266\202\262\207" [cl-struct-comp-cstr-tags most-negative-fixnum most-positive-fixnum type-of signal wrong-type-argument comp-cstr 4 3 last - + t] 6 (#$ . 53288)])
#@52 Return t if CSTR is certainly a symbol.

(fn CSTR)
(defalias 'comp-cstr-symbol-p #[257 "\301!>\204\302\303\304D\"\210\211\305H?\205\231\301!>\204%\302\303\304D\"\210\211\306H?\205\231\301!>\204;\302\303\304D\"\210\211\307H\204X\301!>\204P\302\303\304D\"\210\211\310H\311\232\206\231\301!>\204g\302\303\304D\"\210\211\310H\203\204\301!>\204|\302\303\304D\"\210\211\310H\312\232\205\231\313\314\301!>\204\225\302\303\304D\"\210\307H\"\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 3 4 2 1 (symbol) (symbol) cl-every symbolp] 7 (#$ . 53718)])
#@50 Return t if CSTR is certainly a cons.

(fn CSTR)
(defalias 'comp-cstr-cons-p #[257 "\301!>\204\302\303\304D\"\210\211\305H?\205V\301!>\204%\302\303\304D\"\210\211\306H?\205V\301!>\204;\302\303\304D\"\210\211\307H?\205V\301!>\204Q\302\303\304D\"\210\211\310H\311\232\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2 3 4 1 (cons)] 5 (#$ . 54330)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put comp-cstr-cons-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@75 Constraint OP1 being = OP2 setting the result into DST.

(fn DST OP1 OP2)
(defalias 'comp-cstr-= #[771 "\300\301!!#\207" [#[257 "\301!\262\302\303!>\204\304\305\306D\"\210\307H>\2030\303!>\204+\304\305\306D\"\210\211\310\311I\210\303!>\204?\304\305\306D\"\210\211\312H\313:\203\224@\262\314!\211\205`\3151^\316!0\202`\210\313\211\205gU\211\203\213\211B\303!>\204\304\305\306	D\"\210\310	\310HBI\266\266A\262\202C\266\31724\313\303!>\204\252\304\305\306D\"\210\310H\313\211:\203@\262\211A\262\242\262\320\"\203\321\302!B\262\202\376\303!>\204\341\304\305\306D\"\210\307\307H\302>\203\361\211\202\364\302B\262I\210\321\317\"\210A\262\202\257\303!>\204\304\305\306D\"\210\312\322\303	!>\204+\304\305\306D\"\210\312H\"I\266\2040\210\323\324\303!>\204F\304\305\306D\"\210\312H\"\203s\303!>\204\\\304\305\306D\"\210\211\312\312H\323\325\"\203l\211\202o\325B\262I\210\323\325\303!>\204\204\304\305\306D\"\210\312H\"\203\261\303!>\204\232\304\305\306D\"\210\211\312\312H\323\324\"\203\252\211\202\255\324B\262I\210\207" [cl-struct-comp-cstr-tags comp-cstr-shallow-copy float type-of signal wrong-type-argument comp-cstr 1 3 ((- . +)) 2 nil floatp (overflow-error) truncate --cl-block-nil-- eql throw append memql 0.0 -0.0] 13 "\n\n(fn CSTR)"] comp-cstr-intersection] 9 (#$ . 54873)])
#@101 Constraint DST being > than SRC.
SRC can be either a comp-cstr or an integer.

(fn DST OLD-DST SRC)
(defalias 'comp-cstr-> #[771 "\211\250\203
\211T\301BC\202:\302!>\204\303\304\305D\"\210\211\306H\211\205)\211\211@@\262\211\205/\211\250\211\2058T\301BC\266\203\211\203\332\302!>\204P\303\304\305D\"\210\307\310\311\302!>\204e\303\304\305D\"\210\307H\"\205m\312I\210\302!>\204~\303\304\305D\"\210\313\314I\210\302!>\204\222\303\304\305D\"\210\306\302!>\204\244\303\304\305D\"\210\306H\203\303\315\302!>\204\273\303\304\305D\"\210\306H\"\202\304I\210\302!>\204\325\303\304\305D\"\210\316\314I\207\302!>\204\351\303\304\305D\"\210\307\302!>\204\373\303\304\305D\"\210\307HI\210\302!>\204\303\304\305D\"\210\313\302!>\204!\303\304\305D\"\210\313HI\210\302!>\2045\303\304\305D\"\210\306\302!>\204G\303\304\305D\"\210\306HI\210\302!>\204[\303\304\305D\"\210\316\302!>\204m\303\304\305D\"\210\316HI\207" [cl-struct-comp-cstr-tags + type-of signal wrong-type-argument comp-cstr 3 1 cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] (float) 2 nil comp-range-intersection 4] 15 (#$ . 56295)])
#@102 Constraint DST being >= than SRC.
SRC can be either a comp-cstr or an integer.

(fn DST OLD-DST SRC)
(defalias 'comp-cstr->= #[771 "\211\250\203\f\211\301BC\2028\302!>\204\303\304\305D\"\210\211\306H\211\205(\211\211@@\262\211\205.\211\250\211\2056\301BC\266\203\211\203\330\302!>\204N\303\304\305D\"\210\307\310\311\302!>\204c\303\304\305D\"\210\307H\"\205k\312I\210\302!>\204|\303\304\305D\"\210\313\314I\210\302!>\204\220\303\304\305D\"\210\306\302!>\204\242\303\304\305D\"\210\306H\203\301\315\302!>\204\271\303\304\305D\"\210\306H\"\202\302I\210\302!>\204\323\303\304\305D\"\210\316\314I\207\302!>\204\347\303\304\305D\"\210\307\302!>\204\371\303\304\305D\"\210\307HI\210\302!>\204
\303\304\305D\"\210\313\302!>\204\303\304\305D\"\210\313HI\210\302!>\2043\303\304\305D\"\210\306\302!>\204E\303\304\305D\"\210\306HI\210\302!>\204Y\303\304\305D\"\210\316\302!>\204k\303\304\305D\"\210\316HI\207" [cl-struct-comp-cstr-tags + type-of signal wrong-type-argument comp-cstr 3 1 cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] (float) 2 nil comp-range-intersection 4] 15 (#$ . 57736)])
#@101 Constraint DST being < than SRC.
SRC can be either a comp-cstr or an integer.

(fn DST OLD-DST SRC)
(defalias 'comp-cstr-< #[771 "\211\250\203
\301SBC\202<\302!>\204\303\304\305D\"\210\211\306H\211\205+\211\307!@A\262\211\2051\211\250\211\205:\301SBC\266\203\211\203\334\302!>\204R\303\304\305D\"\210\310\311\312\302!>\204g\303\304\305D\"\210\310H\"\205o\313I\210\302!>\204\200\303\304\305D\"\210\314\315I\210\302!>\204\224\303\304\305D\"\210\306\302!>\204\246\303\304\305D\"\210\306H\203\305\316\302!>\204\275\303\304\305D\"\210\306H\"\202\306I\210\302!>\204\327\303\304\305D\"\210\317\315I\207\302!>\204\353\303\304\305D\"\210\310\302!>\204\375\303\304\305D\"\210\310HI\210\302!>\204\303\304\305D\"\210\314\302!>\204#\303\304\305D\"\210\314HI\210\302!>\2047\303\304\305D\"\210\306\302!>\204I\303\304\305D\"\210\306HI\210\302!>\204]\303\304\305D\"\210\317\302!>\204o\303\304\305D\"\210\317HI\207" [cl-struct-comp-cstr-tags - type-of signal wrong-type-argument comp-cstr 3 last 1 cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] (float) 2 nil comp-range-intersection 4] 15 (#$ . 59178)])
#@101 Constraint DST being > than SRC.
SRC can be either a comp-cstr or an integer.

(fn DST OLD-DST SRC)
(defalias 'comp-cstr-<= #[771 "\211\250\203\f\301BC\202:\302!>\204\303\304\305D\"\210\211\306H\211\205*\211\307!@A\262\211\2050\211\250\211\2058\301BC\266\203\211\203\332\302!>\204P\303\304\305D\"\210\310\311\312\302!>\204e\303\304\305D\"\210\310H\"\205m\313I\210\302!>\204~\303\304\305D\"\210\314\315I\210\302!>\204\222\303\304\305D\"\210\306\302!>\204\244\303\304\305D\"\210\306H\203\303\316\302!>\204\273\303\304\305D\"\210\306H\"\202\304I\210\302!>\204\325\303\304\305D\"\210\317\315I\207\302!>\204\351\303\304\305D\"\210\310\302!>\204\373\303\304\305D\"\210\310HI\210\302!>\204\303\304\305D\"\210\314\302!>\204!\303\304\305D\"\210\314HI\210\302!>\2045\303\304\305D\"\210\306\302!>\204G\303\304\305D\"\210\306HI\210\302!>\204[\303\304\305D\"\210\317\302!>\204m\303\304\305D\"\210\317HI\207" [cl-struct-comp-cstr-tags - type-of signal wrong-type-argument comp-cstr 3 last 1 cl-some #[257 "\302B\303\304!	>\204\305\306\307D\"\210\310H\"\2068\311\312\"=\304!	>\2044\305\306\307D\"\210\310H#\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags float gethash type-of signal wrong-type-argument comp-cstr-ctxt 3 puthash comp-common-supertype-2] 11 "\n\n(fn X)"] (float) 2 nil comp-range-intersection 4] 15 (#$ . 60626)])
#@35 Sum SRCS into DST.

(fn DST SRCS)
(defalias 'comp-cstr-add #[514 "\300@A@#\210\211AA\301:\203#@\262\300\211#\210A\262\202
\301\207" [comp-cstr-add-2 nil] 8 (#$ . 62070)])
#@40 Subtract SRCS into DST.

(fn DST SRCS)
(defalias 'comp-cstr-sub #[514 "\300@A@#\210\211AA\301:\203#@\262\300\211#\210A\262\202
\301\207" [comp-cstr-sub-2 nil] 8 (#$ . 62259)])
#@140 Combine SRCS by union set operation setting the result in DST.
Do not propagate the range component.
DST is returned.

(fn DST &rest SRCS)
(defalias 'comp-cstr-union-no-range #[385 "\300\301\302$\207" [apply comp-cstr-union-1 nil] 7 (#$ . 62454)])
#@102 Combine SRCS by union set operation setting the result in DST.
DST is returned.

(fn DST &rest SRCS)
(defalias 'comp-cstr-union #[385 "\300\301\302$\207" [apply comp-cstr-union-1 t] 7 (#$ . 62711)])
#@83 Combine SRCS by union set operation and return a new constraint.

(fn &rest SRCS)
(defalias 'comp-cstr-union-make #[128 "\300\301\302\303\304\305\211\211%#\207" [apply comp-cstr-union record comp-cstr (t) nil] 9 (#$ . 62918)])
#@109 Combine SRCS by intersection set operation setting the result in DST.
DST is returned.

(fn DST &rest SRCS)
(defalias 'comp-cstr-intersection #[385 "\303!	>\204\304\305\306D\"\210\307H\310\"\206$\311\312\313\"\314\315\"#\303!\n>\2044\304\305\316D\"\210\317\303!\n>\204E\304\305\316D\"\210\317HI\210\303!\n>\204Z\304\305\316D\"\210\320\303!\n>\204k\304\305\316D\"\210\320HI\210\303!\n>\204\200\304\305\316D\"\210\321\303!\n>\204\221\304\305\316D\"\210\321HI\210\303!\n>\204\246\304\305\316D\"\210\322\303!\n>\204\267\304\305\316D\"\210\322HI\210\207" [comp-ctxt cl-struct-comp-cstr-ctxt-tags cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr-ctxt 6 gethash puthash mapcar comp-cstr-copy apply comp-cstr-intersection-no-mem comp-cstr 1 2 3 4] 10 (#$ . 63153)])
#@197 Combine SRCS by intersection set operation setting the result in DST.
Non hash consed values are not propagated as values but rather
promoted to their types.
DST is returned.

(fn DST &rest SRCS)
(defalias 'comp-cstr-intersection-no-hashcons #[385 "\301\302#\210\303!>\204\304\305\306D\"\210\307H\203\243\303!>\204*\304\305\306D\"\210\310H\203\243\311\303!>\204@\304\305\306D\"\210\310H\312\301\313$?\266\203\203\243\303!>\204_\304\305\306D\"\210\310\312I\210\303!>\204s\304\305\306D\"\210\314\315I\210\303!>\204\207\304\305\306D\"\210\316\312I\210\303!>\204\233\304\305\306D\"\210\307\312I\210\202\226\312\211\303!>\204\265\304\305\306D\"\210\310H\312:\203\332@\262\2119\204\323\211B\262\303!B\262A\262\202\271\266\2038\303!>\204\360\304\305\306D\"\210\314\317\303!>\204\304\305\306	D\"\210\314H\"I\210\303!>\204\304\305\306D\"\210\310\320\303!>\2040\304\305\306	D\"\210\310H\"I\210\3212\224\303!>\204L\304\305\306D\"\210\316H\312\211:\205\221@\262\211A\262\242\262\322!\204n\322!\203\212\303!>\204\304\305\306	D\"\210\316\323I\210\324\321\312\"\210A\262\202Q\266\2030\266\207" [cl-struct-comp-cstr-tags apply comp-cstr-intersection type-of signal wrong-type-argument comp-cstr 4 2 symbolp nil cl-every 1 (t) 3 comp-union-typesets cl-set-difference --cl-block-nil-- bignump ((- . +)) throw] 11 (#$ . 63986)])
#@90 Combine SRCS by intersection set operation and return a new constraint.

(fn &rest SRCS)
(defalias 'comp-cstr-intersection-make #[128 "\300\301\302\303\304\305\211\211%#\207" [apply comp-cstr-intersection record comp-cstr (t) nil] 9 (#$ . 65430)])
#@70 Negate SRC setting the result in DST.
DST is returned.

(fn DST SRC)
(defalias 'comp-cstr-negation #[514 "\301!>\204\302\303\304D\"\210\211\305H\204\251\301!>\204$\302\303\304D\"\210\211\306H\204\251\301!>\2049\302\303\304D\"\210\211\307H\204\251\301!>\204N\302\303\304D\"\210\211\310H\311\232\203\251\301!>\204e\302\303\304D\"\210\310\312I\210\301!>\204y\302\303\304D\"\210\305\312I\210\301!>\204\215\302\303\304D\"\210\306\312I\210\301!>\204\241\302\303\304D\"\210\307\312I\210\202\345\301!>\204\270\302\303\304D\"\210\211\305H\204P\301!>\204\315\302\303\304D\"\210\211\306H\204P\301!>\204\342\302\303\304D\"\210\211\307H\204P\301!>\204\367\302\303\304D\"\210\211\310H\204P\301!>\204\f\302\303\304D\"\210\310\313I\210\301!>\204 \302\303\304D\"\210\305\312I\210\301!>\2044\302\303\304D\"\210\306\312I\210\301!>\204H\302\303\304D\"\210\307\312I\210\202\345\301!>\204_\302\303\304D\"\210\310\301!>\204p\302\303\304D\"\210\310HI\210\301!>\204\204\302\303\304D\"\210\305\301!>\204\225\302\303\304D\"\210\305HI\210\301!>\204\251\302\303\304D\"\210\306\301!>\204\272\302\303\304D\"\210\306HI\210\301!>\204\316\302\303\304D\"\210\307\301!>\204\337\302\303\304D\"\210\307H?I\210\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2 3 4 1 (t) nil (t)] 8 (#$ . 65685)])
#@80 Negate values in SRC setting the result in DST.
DST is returned.

(fn DST SRC)
(defalias 'comp-cstr-value-negation #[514 "\301!>\204\302\303\304D\"\210\211\305H\204*\301!>\204$\302\303\304D\"\210\211\306H\203\261\301!>\2049\302\303\304D\"\210\307\310I\210\301!>\204M\302\303\304D\"\210\305\301!>\204^\302\303\304D\"\210\305HI\210\301!>\204r\302\303\304D\"\210\306\301!>\204\203\302\303\304D\"\210\306HI\210\301!>\204\227\302\303\304D\"\210\311\301!>\204\250\302\303\304D\"\210\311H?I\210\202\376\301!>\204\300\302\303\304D\"\210\307\301!>\204\321\302\303\304D\"\210\307HI\210\301!>\204\345\302\303\304D\"\210\305\310I\210\301!>\204\371\302\303\304D\"\210\306\310I\210\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2 3 1 nil 4] 8 (#$ . 67101)])
#@51 Negate SRC and return a new constraint.

(fn SRC)
(defalias 'comp-cstr-negation-make #[257 "\300\301\302\303\304\211\211%\"\207" [comp-cstr-negation record comp-cstr (t) nil] 8 (#$ . 67949)])
#@145 Convert a type specifier TYPE-SPEC into a `comp-cstr'.
FN non-nil indicates we are parsing a function lambda list.

(fn TYPE-SPEC &optional FN)
(defalias 'comp-type-spec-to-cstr #[513 "\302\267\202+\211\203\f\207\303\304\"\207\305\306\307\211\211\211%\207\310	B!\207\311\312!\207\310\313!\207\314\307!\207:\2044\315!\207:\203|\242\211\316\267\202x\243\317\320\321\311\"\"\207\243\317\322\321\311\"\"\207\243\211:\203n\211\242\243\211\204j\323\311!!\207\303\324!\207\303\324!\207\243\211:\203\354\211\242\211\250\203\274\243\211:\203\270\211\242\211\250\203\236\243\211\204\232\310B!\207\303\324!\207\211\325=\203\264\243\211\204\260\310\326B!\207\303\324!\207\303\324!\207\303\324!\207\211\325=\203\350\243\211:\203\344\211\242\211\250\203\340\243\211\204\334\310\327B!\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207\243\211:\2038\211\242\211\211\247\206\211\325=\262\2034\243\211:\2030\211\242\211\211\247\206\211\325=\262\203,\243\211\204(\315\330!\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207\243\317\320\321\314\"\"\207\243\211:\203t\211\242\243\211:\203p\211\242\243\211\204l\331\332\321\333\"\334\311!$\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207\303\324!\207" [most-negative-fixnum most-positive-fixnum #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (&rest 6 &optional 6 nil 17 fixnum 25 boolean 31 integer 35 null 39)) error "Invalid `%s` in type specifier" record comp-cstr nil comp-irange-to-cstr comp-type-spec-to-cstr (member t nil) (- . +) comp-value-to-cstr comp-type-to-cstr #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (or 65 and 75 not 85 integer 114 float 240 member 316 function 326)) apply comp-cstr-union-make mapcar comp-cstr-intersection-make comp-cstr-negation-make "Invalid type specifier" * + - float make-comp-cstr-f :args #[257 "\300\301\"\207" [comp-type-spec-to-cstr t] 4 "\n\n(fn X)"] :ret] 14 (#$ . 68149)])
#@50 Given CSTR return its type specifier.

(fn CSTR)
(defalias 'comp-cstr-to-type-spec #[257 "\301!>\204\302\303\304D\"\210\211\305H\301!>\204!\302\303\304D\"\210\306H\301!>\2043\302\303\304D\"\210\307H\301!>\204F\302\303\304D\"\210\310H\203v\311>\203v\312>\203k\313B\262\314\312\314\311\"\"\262\202v\314\311\"\262\315B\262\311\211\211\211\211\211:\203\317@\262\211A\262\242\262\250\203\231\202\232\316\262\250\203\245\202\246\316\262\316=\203\274\316=\203\274\317B\262\202\304\317EB\262A\262\311\262\202}\237\266\207\262\320!\262\321\"\211\203\356\203\356\322BB\202\211\203\366\211\202\203\322B\202\311\323\324:\203\243\242\211\325\267\202\223\243\"\262\202\234\243\211:\203\211\211\242\211\211\247\206-\211\316=\262\203~\243\211:\203s\211\242\211\211\247\206D\211\316=\262\203f\243\211\204X	\311\"\202a	#\262\202n#\262\202y#\262\202\204#\262\202\216#\262\202\234\243#\262\262\266\202\202\254:?\205\252\266\202\203\264\326D\207\207" [cl-struct-comp-cstr-tags type-of signal wrong-type-argument comp-cstr 2 1 3 4 nil t boolean remove null * integer cl-remove-duplicates append member #[514 "\211\203\207@\207" [] 3 "\n\n(fn RES REST)"] #[771 "\211\203\300B\207@\207" [or] 5 "\n\n(fn RES FIRST REST)"] #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (member 272 integer 283)) not] 19 (#$ . 70201)])
(provide 'comp-cstr)

Youez - 2016 - github.com/yon3zu
LinuXploit