(;module: lux (lux (control monad) [io #- run] (data ["E" error] [text "T/" Eq] text/format) [macro #+ Monad]) (luxc ["&" base] ["&;" module] ["&;" env] (compiler ["&;" expr]))) (def: #export (compile-def def-name def-value def-meta) (-> Text Code Code (Lux Unit)) (do Monad [=def-value (&expr;compile def-value) =def-meta (&expr;compile def-meta)] (undefined))) (def: #export (compile-program prog-args prog-body) (-> Text Code (Lux Unit)) (do Monad [=prog-body (&env;with-local [prog-args (type (List Text))] (&expr;compile prog-body))] (undefined)))