(.module: [lux #* [control ["p" parser ["." cli (#+ Parser)]]] [world [file (#+ Path)]]]) (type: #export Service #Compilation #Interpretation) (type: #export Configuration {#service Service #sources (List Path) #target Path #module Text}) (template [ ] [(def: (Parser Text) (cli.named cli.any))] [source "--source"] [target "--target"] [module "--module"] ) (def: service (Parser Service) ($_ p.or (cli.this "build") (cli.this "repl"))) (def: #export configuration (Parser Configuration) ($_ p.and ..service (p.some ..source) ..target ..module))