(;module: lux (lux (control [monad #+ do]) (data text/format [maybe] (coll ["d" dict]))) (luxc ["&" base] (lang ["ls" synthesis]) (generator (procedure ["&&;" common]) (host ["$" jvm])))) (def: #export (generate-procedure generate name args) (-> (-> ls;Synthesis (Lux $;Inst)) Text (List ls;Synthesis) (Lux $;Inst)) (default (&;fail (format "Unknown procedure: " (%t name))) (do maybe;Monad [proc (d;get name &&common;procedures)] (wrap (proc generate args)))))