(.module: [lux (#- Module Code) [control ["." try (#+ Try)] ["." exception (#+ exception:)]] [data ["." text] [collection ["." dictionary (#+ Dictionary)]]] [world ["." file (#+ Path)]]] [/ [meta ["." archive (#+ Archive) [key (#+ Key)] [descriptor (#+ Descriptor Module)] [document (#+ Document)]]]]) (type: #export Code Text) (type: #export Parameter Text) (type: #export Input {#module Module #file Path #hash Nat #code Code}) (type: #export (Output o) (Dictionary Text o)) (def: #export empty-output Output (dictionary.new text.hash)) (type: #export (Compilation s d o) {#dependencies (List Module) #process (-> s Archive (Try [s (Either (Compilation s d o) [[Descriptor (Document d)] (Output o)])]))}) (type: #export (Compiler s d o) (-> Input (Compilation s d o))) (type: #export (Instancer s d o) (-> (Key d) (List Parameter) (Compiler s d o))) (exception: #export (cannot-compile {module Module}) (exception.report ["Module" module]))