(;module: lux (lux (control monad) (data text/format) [macro #+ Monad "Lux/" Monad]) (luxc ["&" base] (lang ["la" analysis] ["ls" synthesis]) ["&;" analyser] ["&;" synthesizer] (generator ["&;" common] (host ["$" jvm] (jvm ["$i" inst]))))) (def: #export generate-unit (Lux $;Inst) (Lux/wrap ($i;string &common;unit))) (do-template [ ] [(def: #export ( value) (-> (Lux $;Inst)) (Lux/wrap (|>. ( value) )))] [generate-bool Bool $i;boolean $i;wrap-boolean] [generate-nat Nat (|>. (:! Int) $i;long) $i;wrap-long] [generate-int Int $i;long $i;wrap-long] [generate-deg Deg (|>. (:! Int) $i;long) $i;wrap-long] [generate-real Real $i;double $i;wrap-double] [generate-char Char $i;char $i;wrap-char] [generate-text Text $i;string id] )