Next: syntaxes define, Up: syntaxes [Contents][Index]
The following syntactic bindings are exported by the library
(vicare)
.
Fully expand the given expression in the current lexical environment and
return a structure of type <type-signature>
representing the types
of the tuple of returned values. The expression is not
evaluated, only expanded; this means that the expansion side effects are
performed.
Examples:
(type-of (values)) ⇒ #[signature ()] (type-of (values 1 2)) ⇒ #[signature (<positive-fixnum> <positive-fixnum>)] (type-of 123) ⇒ #[signature (<positive-fixnum>)] (type-of ((lambda ({_ symbol}) 'ciao))) ⇒ #[signature (<symbol>)] (type-of (+ 1 2)) ⇒ #[signature (<exact-integer>)] (type-of (+ 1.2 2.3)) ⇒ #[signature (<flonum>)] (type-of (list 1 2.3)) ⇒ #[signature ((list <positive-fixnum> <positive-flonum>))] (type-of (condition (make-who-condition 'io) (make-message-condition "ciao"))) ⇒ #[signature ((condition &who &message))]
Expand into a list of symbols representing the type hierarchy of ?type-name, which must be a syntactic identifier bound to an object type specification.
(type-unique-identifiers <top>) ⇒ (vicare:scheme-type:<top>) (type-unique-identifiers <string>) ⇒ (vicare:scheme-type:<string> vicare:scheme-type:<top>) (type-unique-identifiers <condition>) ⇒ (vicare:scheme-type:<condition> vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>) (type-unique-identifiers <compound-condition>) ⇒ (vicare:scheme-type:<compound-condition> vicare:scheme-type:<condition> vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>) (type-unique-identifiers &condition) ⇒ (vicare:scheme-type:&condition vicare:scheme-type:<condition> vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>) (type-unique-identifiers &message) ⇒ (vicare:scheme-type:&message vicare:scheme-type:&condition vicare:scheme-type:<condition> vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>) (internal-body (define-struct duo (one two) (nongenerative yeah)) (type-unique-identifiers duo)) ⇒ (yeah vicare:scheme-type:<struct> vicare:scheme-type:<top>) (internal-body (define-record-type duo (nongenerative duo) (fields one two)) (type-unique-identifiers duo)) ⇒ (duo vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>) (internal-body (define-record-type alpha (nongenerative alpha)) (define-record-type beta (parent alpha) (nongenerative beta)) (type-unique-identifiers beta)) ⇒ (beta alpha vicare:scheme-type:<record> vicare:scheme-type:<struct> vicare:scheme-type:<top>)