(;module: lux (lux (control monad) [macro #+ Monad] (type ["TC" check])) (luxc ["&" base] (lang ["la" analysis #+ Analysis]))) ## [Analysers] (do-template [ ] [(def: #export ( value) (-> (Lux Analysis)) (do Monad [expected macro;expected-type _ (&;within-type-env (TC;check expected ))] (wrap ( value))))] [analyse-bool Bool #la;Bool] [analyse-nat Nat #la;Nat] [analyse-int Int #la;Int] [analyse-deg Deg #la;Deg] [analyse-frac Frac #la;Frac] [analyse-text Text #la;Text] ) (def: #export analyse-unit (Lux Analysis) (do Monad [expected macro;expected-type _ (&;within-type-env (TC;check expected Unit))] (wrap #la;Unit)))