Run macros in the IO monad
* btl/builtins.typer (Macro, Macro_expand): Return type is now `IO Sexp`. * btl/pervasive.typer (multiarg_lambda, quote, __.__): Adjust accordingly. * src/debruijn.ml (senv_lookup): No need to be recursive. * src/elab.ml (get_implicit_arg, elab_macro_call, lexp_decls_macro): Macros are now run in the IO monad. (sexp_decls_macro_print): Comment out. * src/opslexp.ml (ctx2tup.mk_lets_and_tup): Fix debindex. * tests/eval_test.ml (test_eval_eqv_named): Don't burp on empty lists. ("Implicit Arguments"): Adjust to new type. ("Generic-typed case"): Use our own `Pair` type. * tests/macro_test.ml ("macros base", "macros decls"): Adjust to new type.
Loading
Please register or sign in to comment