(.module: lux (lux (control monad) [macro] (macro [code]) (lang (type ["tc" check]))) (luxc ["&" lang] (lang ["la" analysis #+ Analysis]))) ## [Analysers] (do-template [ ] [(def: #export ( value) (-> (Meta Analysis)) (do macro.Monad [_ (&.infer )] (wrap ( value))))] [analyse-bool Bool code.bool] [analyse-nat Nat code.nat] [analyse-int Int code.int] [analyse-deg Deg code.deg] [analyse-frac Frac code.frac] [analyse-text Text code.text] ) (def: #export analyse-unit (Meta Analysis) (do macro.Monad [_ (&.infer Unit)] (wrap (` []))))