(.using [library [lux (.except) [abstract [equivalence (.only Equivalence)]] [control ["<>" parser (.only) ["<[0]>" code (.only Parser)]]] [data ["[0]" product] [collection ["[0]" list (.open: "[1]#[0]" monad)]]] [macro ["[0]" code]]]]) (type: .public Input (Record [#binding Code #type Code])) (def: .public equivalence (Equivalence Input) (all product.equivalence code.equivalence code.equivalence )) (def: .public format (-> (List Input) Code) (|>> (list#each (function (_ value) (list (the #binding value) (the #type value)))) list#conjoint code.tuple)) (def: .public parser (Parser (List Input)) (<| .tuple <>.some (all <>.and .any .any )))