(.module: lux (lux [macro] (data [text] text/format)) (luxc ["&" lang]) [//] (// [".T" runtime])) (do-template [ ] [(def: #export ( register) (-> Nat //.Expression) (format (%n register))) (def: #export ( register) (-> Nat (Meta //.Expression)) (:: macro.Monad wrap ( register)))] [closure translate-local "c"] [variable translate-captured "v"]) (def: #export (global [module name]) (-> Ident //.Expression) (format (text.replace-all "/" "_" module) "$" (&.normalize-name name))) (def: #export (translate-definition name) (-> Ident (Meta //.Expression)) (:: macro.Monad wrap (global name)))