(;module: lux (lux (control monad) (data text/format) [macro #+ Monad "Lux/" Monad] [host #+ jvm-import]) (luxc ["&" base] (lang ["la" analysis] ["ls" synthesis]) ["&;" analyser] ["&;" synthesizer] (generator ["&;" common]))) (jvm-import #long java.lang.Object) (jvm-import org.objectweb.asm.Opcodes) (jvm-import org.objectweb.asm.MethodVisitor (visitLdcInsn [Object] void)) (def: #export generate-unit (Lux Unit) (do Monad [visitor &common;get-visitor #let [_ (MethodVisitor.visitLdcInsn [(:! java.lang.Object &common;unit)] visitor)]] (wrap []))) (do-template [ ] [(def: #export ( value) (-> (Lux Unit)) (do Monad [visitor &common;get-visitor #let [_ (MethodVisitor.visitLdcInsn [(:! java.lang.Object value)] visitor) _ ( visitor)]] (wrap [])))] [generate-bool Bool &common;wrap-boolean] [generate-nat Nat &common;wrap-long] [generate-int Int &common;wrap-long] [generate-deg Deg &common;wrap-long] [generate-real Real &common;wrap-double] [generate-char Char &common;wrap-char] [generate-text Text id] )