(.module: lux (lux [macro "meta/" Monad]) (luxc (lang (host [r #+ Expression Statement]))) [//] (// [".T" runtime])) (def: #export translate-bool (-> Bool (Meta Expression)) (|>> r.bool meta/wrap)) (def: #export translate-int (-> Int (Meta Expression)) (|>> runtimeT.int meta/wrap)) (def: #export translate-nat (-> Nat (Meta Expression)) (|>> (:! Int) runtimeT.int meta/wrap)) (def: #export translate-deg (-> Deg (Meta Expression)) (|>> (:! Int) runtimeT.int meta/wrap)) (def: #export translate-frac (-> Frac (Meta Expression)) (|>> r.float meta/wrap)) (def: #export translate-text (-> Text (Meta Expression)) (|>> r.string meta/wrap))