(.module: [lux (#- Module Source) [control ["<>" parser ["." cli (#+ Parser)]]] [tool [compiler [meta [archive [descriptor (#+ Module)]]]]] [world [file (#+ Path)]]]) (type: #export Source Path) (type: #export Target Path) (type: #export Compilation [(List Source) Target Module]) (type: #export Export [(List Source) Target]) (type: #export Service (#Compilation Compilation) (#Interpretation Compilation) (#Export Export)) (template [ ] [(def: (Parser ) (cli.named cli.any))] [source "--source" Source] [target "--target" Target] [module "--module" Module] ) (def: #export service (Parser Service) ($_ <>.or (<>.after (cli.this "build") ($_ <>.and (<>.some ..source) ..target ..module)) (<>.after (cli.this "repl") ($_ <>.and (<>.some ..source) ..target ..module)) (<>.after (cli.this "export") ($_ <>.and (<>.some ..source) ..target)) ))