 DEFER: lisp-var?
 DEFER: macro-expand
 DEFER: define-lisp-macro
-    
-ERROR: no-such-var variable-name ;
-M: no-such-var summary drop "No such variable" ;
     
 ! Functions to convert s-exps to quotations
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     [ 1quotation ]
    } cond ;
    
: compile-form ( lisp-ast -- quot )
    convert-form lambda-rewrite call ; inline
    
: macro-expand ( cons -- quot )
    uncons [ list>seq [ ] like ] [ lookup-macro lambda-rewrite call ] bi* call compile-form call ;
    
: lisp-string>factor ( str -- quot )
    lisp-expr compile-form ;


SYMBOL: lisp-env
SYMBOL: macro-env
    
ERROR: no-such-var variable-name ;
M: no-such-var summary drop "No such variable" ;

: init-env ( -- )
    H{ } clone lisp-env set
