(;module: lux (lux (control monad) (data [text] text/format (coll ["D" dict]) maybe)) (luxc ["&" base] (lang ["la" analysis #+ Analysis])) (. ["&&;" common])) (def: #export (analyse-procedure analyse proc-name proc-args) (-> &;Analyser Text (List Code) (Lux Analysis)) (default (&;fail (format "Unknown procedure: " (%t proc-name))) (do Monad [proc (D;get proc-name &&common;procedures)] (wrap (proc analyse proc-args)))))