(.module: lux (lux [macro] (data [text] text/format)) (luxc ["&" lang] (lang [".L" variable #+ Variable Register] (host ["_" php #+ Var]))) [//] (// [".T" runtime])) (template [ ] [(def: #export (-> Register Var) (|>> (:coerce Int) %i (format ) _.var))] [closure "c"] [variable "v"]) (def: #export (local var) (-> Variable Var) (if (variableL.captured? var) (closure (variableL.captured-register var)) (variable (:coerce Nat var)))) (def: #export global (-> Name Var) (|>> //.definition-name _.var)) (template [ ] [(def: #export (-> (Meta Var)) (|>> (:: macro.Monad wrap)))] [translate-variable Variable local] [translate-definition Name global] )