define-toplevel-macro defines a macro that expands into Coalton toplevel
forms.
Syntax
(define-toplevel-macro name lambda-list
body ...)
Semantics
- It has the same expansion model as
cl:defmacro. - The macro body runs as Common Lisp and returns Coalton source forms.
- The macro is intended for use inside
coalton-toplevel,coalton-codegen,pprint-coalton-codegen, and related forms. - Coalton-aware REPLs may use this role to evaluate bare calls as Coalton toplevel forms.
Example
(define-toplevel-macro define-constant (name type value)
`(progn
(declare ,name ,type)
(define ,name ,value)))
(coalton-toplevel
(define-constant answer Integer 42))