diff options
Diffstat (limited to 'stdlib/source/library/lux/macro/syntax/input.lux')
-rw-r--r-- | stdlib/source/library/lux/macro/syntax/input.lux | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/stdlib/source/library/lux/macro/syntax/input.lux b/stdlib/source/library/lux/macro/syntax/input.lux index b7ff83a59..51aa4b5fe 100644 --- a/stdlib/source/library/lux/macro/syntax/input.lux +++ b/stdlib/source/library/lux/macro/syntax/input.lux @@ -7,7 +7,9 @@ ["<>" parser ["<[0]>" code {"+" [Parser]}]]] [data - ["[0]" product]] + ["[0]" product] + [collection + ["[0]" list ("[1]\[0]" monad)]]] [macro ["[0]" code]]]]) @@ -23,16 +25,19 @@ code.equivalence )) -(def: .public (format value) - (-> Input Code) - (code.record - (list [(value@ #binding value) - (value@ #type value)]))) +(def: .public format + (-> (List Input) Code) + (|>> (list\each (function (_ value) + (list (value@ #binding value) + (value@ #type value)))) + list\conjoint + code.tuple)) (def: .public parser - (Parser Input) - (<code>.record - ($_ <>.and - <code>.any - <code>.any - ))) + (Parser (List Input)) + (<| <code>.tuple + <>.some + ($_ <>.and + <code>.any + <code>.any + ))) |