(.module: [lux (#- i64) [control monad] [data [text format]] [platform [compiler [phase ("operation/." Monad<Operation>)]]]] [luxc [lang [host ["." jvm (#+ Inst Operation) ["_" inst] ["$t" type]]]]]) (def: #export (bit value) (-> Bit (Operation Inst)) (operation/wrap (_.GETSTATIC "java.lang.Boolean" (if value "TRUE" "FALSE") ($t.class "java.lang.Boolean" (list))))) (do-template [<name> <type> <load> <wrap>] [(def: #export (<name> value) (-> <type> (Operation Inst)) (let [loadI (|> value <load>)] (operation/wrap (|>> loadI <wrap>))))] [i64 (I64 Any) (<| _.long .int) (_.wrap #jvm.Long)] [f64 Frac _.double (_.wrap #jvm.Double)] [text Text _.string (<|)] )