(;module: lux (lux (control monad) (data text/format) [macro #+ Monad "Lux/" Monad]) (luxc ["&" base] lang ["&;" analyser] ["&;" synthesizer])) (type: #export JVM-Bytecode Void) (type: #export Compiled JVM-Bytecode) (def: (compile-synthesis synthesis) (-> Synthesis Compiled) (undefined)) (def: (eval type code) Eval (undefined)) (def: #export (compile input) (-> Code (Lux Compiled)) (|> input (&analyser;analyse eval) (Lux/map &synthesizer;synthesize) (Lux/map compile-synthesis)))