;ELC   
;;; Compiled by root@bugs.build.redhat.com on Fri Feb  4 11:21:13 2005
;;; from file /usr/src/build/514901-i386/BUILD/emacs-21.3/Mule-UCS-current/lisp/mucs-type.el
;;; in Emacs version 21.3.1
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mucs-type.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list mucs-type-alist boundp nil] 2)
(defalias 'mucs-type-p #[(type) "	\236\205 \302\207" [type mucs-type-alist t] 2])
(put 'mucs-type-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-get-option-alist #[(type) "\302	\236\206\f \303\304C\"8\207" [type mucs-type-alist 4 signal mucs-unknown-type-error] 4])
(put 'mucs-type-get-option-alist 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-set-option-alist #[(type alist) "	\236\211\203 \304\n\233\240\202 \305\306C\")\207" [type mucs-type-alist slot alist 4 signal mucs-unknown-type-error] 4])
(put 'mucs-type-set-option-alist 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-assq-option-alist #[(type key) "	\303	\n\236\206 \304\305	C\"8)\236\207" [key type mucs-type-alist 4 signal mucs-unknown-type-error] 5])
(put 'mucs-type-assq-option-alist 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-delq-option-alist #[(type key) "\305	\236\206 \306\307C\"8)\310\n\236\n\"\211	\236\211\203* \305\f\233\n\240\202/ \306\307C\",\207" [type mucs-type-alist alist key slot 4 signal mucs-unknown-type-error delq] 5])
(put 'mucs-type-delq-option-alist 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-put-option-alist #[(type key value) "\306	\236\206 \307\310C\"8)\n\236\211\203  \f\241\210\202B B\nB\n\211	\236\211\203: \306\f\233\n\240\202? \307\310C\")\210*\f*\207" [type mucs-type-alist alist key slot value 4 signal mucs-unknown-type-error] 5])
(put 'mucs-type-put-option-alist 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-representation-conversion-function-p #[(conv) "\301=\206 ?\206 \302!\207" [conv none functionp] 2])
(put 'mucs-representation-conversion-function-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-representation-check-conversion-function #[(conv) "\211\301=\206 ?\206 \302!)?\205 \303\304\305\306\"D\"\207" [conv none functionp signal wrong-type-argument format "%S is not function."] 7])
(put 'mucs-representation-check-conversion-function 'byte-optimizer 'byte-compile-inline-expand)
#@14 Define TYPE.
(defalias 'mucs-define-type #[(type elisp-conv ccl-conv &optional equal-op relative-op) "\204 \306	\204\f \307\n\211\211\310=\206 ?\206 \311!)\204, \312\313\314\315\"D\"\210)\f\211\211\310=\206? ?\206? \311!)\204M \312\313\314\315\"D\"\210)\236\n\fB	B\316\211\257\211\203q A\241\210\202z B*\207" [equal-op relative-op elisp-conv conv ccl-conv type eq < none functionp signal wrong-type-argument format "%S is not function." nil mucs-type-alist cell slot] 8 (#$ . 2844)])
(defalias 'mucs-type-get-elisp-representation #[(type) "	\236\211\204 \303\304C\"\202 \nA@@)\207" [type mucs-type-alist slot signal mucs-unknown-type-error] 4])
(defalias 'mucs-type-get-ccl-representation #[(type) "	\236\211\204 \303\304C\"\202 \nA@A)\207" [type mucs-type-alist slot signal mucs-unknown-type-error] 4])
(defalias 'mucs-type-get-equal-op #[(type) "	\236\211\204 \303\304C\"\202 \305\n8@)\207" [type mucs-type-alist slot signal mucs-unknown-type-error 2] 4])
(defalias 'mucs-type-get-relative-op #[(type) "	\236\211\204 \303\304C\"\202 \305\n8A)\207" [type mucs-type-alist slot signal mucs-unknown-type-error 2] 4])
(defalias 'mucs-type-check-valid-serialization #[(serialize) "\301=\206 \302?\205 \303\304C\"\207" [serialize none t signal mucs-invalid-serialization-error] 3])
(put 'mucs-type-check-valid-serialization 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-register-serialization #[(type name serialize unserialize) "9\204\f \306\307\310D\"\210	\210\n\210\f\236\311\211\211\f\211\204' \306\312C\"\210\3138\236\f	\nBB\f\203G \fA\241\210\202Q \313\233B\240\210,\207" [name serialize unserialize type mucs-type-alist serials signal wrong-type-argument symbolp nil mucs-unknown-type-error 3 serial-slot cell slot] 5])
(defalias 'mucs-type-get-serialize-method #[(type name unserializep) "\306	\n\2368\236\307\211\204 \310\311	B\"\210\203 \fAA\202\" \fA@\211\312=\203? \2036 \310\313	B\"\202@ \310\314	B\"\202@ *\207" [name type mucs-type-alist result serialize-slot unserializep 3 nil signal mucs-unknown-serialization-error none mucs-no-serialization-method mucs-no-unserialization-method] 5])
(defalias 'mucs-type-register-conversion #[(from-type to-type conversion) "	\236\306\211\211\204 \307\310C\"\210\211\211\311=\206( ?\206( \312!)\2048 \307\313\314\315\"D\"\210)\316\317	\236\206S \307\310C\"8)\236*A\236\211\203i \n\241\210\202\335 \203y BB\241\210\202\335 \316BC\211\317	\236\206\227 \307\310C\"8)\236\211\203\255 \f\241\210\202\331 BB\211	\236\211\203\320 \317\f\233\240\202\326 \307\310C\")\210*\f*\210++\320\207" [from-type mucs-type-alist conv-func-slot to-type-conv-slot slot conversion nil signal mucs-unknown-type-error none functionp wrong-type-argument format "%S is not function." type-conversion 4 t conv key type to-type value alist] 8])
(defalias 'mucs-type-get-conversion #[(from-type to-type) "	\236\306\211\211\204 \307\310C\"\210\311\312	\236\206* \307\310C\"8)\236*\fA\236\211A+\207" [from-type mucs-type-alist conv-func-slot to-type-conv-slot slot key nil signal mucs-unknown-type-error type-conversion 4 type to-type] 6])
#@87 Get convertion from FROM-TYPE to TO-TYPE.
If convertion cannot be found, cause error.
(defalias 'mucs-type-get-conversion-force #[(from-type to-type) "\302	\"\206 \303\304	B\"\207" [from-type to-type mucs-type-get-conversion signal mucs-type-cannot-convert] 4 (#$ . 6150)])
(put 'mucs-type-get-conversion-force 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mucs-type-list #[nil "\301\302\"\207" [mucs-type-alist mapcar car] 3])
(defalias 'mucs-type-serialization-list #[(type) "	\236\211\204 \303\304C\"\210\305\306\307\n8\")\207" [type mucs-type-alist slot signal mucs-unknown-type-error mapcar car 3] 5])
(defalias 'mucs-type-convert-value #[(from-type to-type val) "\303	\"\n!\207" [from-type to-type val mucs-type-get-conversion] 3])
(defalias 'mucs-type-get-ccl-value #[(type val) "\302!	!\207" [type val mucs-type-get-ccl-representation] 2])
(defalias 'mucs-type-get-elisp-value #[(type val) "\302!	!\207" [type val mucs-type-get-elisp-representation] 2])
(provide 'mucs-type)
