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