diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/data/format/json.lux | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/stdlib/source/lux/data/format/json.lux b/stdlib/source/lux/data/format/json.lux index e00783c0b..899cd652a 100644 --- a/stdlib/source/lux/data/format/json.lux +++ b/stdlib/source/lux/data/format/json.lux @@ -17,11 +17,11 @@ (coll [list "list/" Fold<List> Monad<List>] [sequence #+ Sequence sequence "sequence/" Monad<Sequence>] [dict #+ Dict])) - [macro #+ Monad<Lux> with-gensyms] - (macro ["s" syntax #+ syntax:] - [code] - [poly #+ poly:]) - [type] + [meta #+ Monad<Meta> with-gensyms] + (meta ["s" syntax #+ syntax:] + [code] + [poly #+ poly:] + [type]) )) (do-template [<name> <type>] @@ -61,7 +61,7 @@ (json ["this" "is" "an" "array"]) (json {"this" "is" "an" "object"}))} - (let [(^open) Monad<Lux> + (let [(^open) Monad<Meta> wrapper (function [x] (` (;;json (~ x))))] (case token (^template [<ast-tag> <ctor> <json-tag>] @@ -78,7 +78,7 @@ (wrap (list (` (: JSON (#Array (sequence (~@ (list/map wrapper members)))))))) [_ (#;Record pairs)] - (do Monad<Lux> + (do Monad<Meta> [pairs' (monad;map @ (function [[slot value]] (case slot @@ -86,7 +86,7 @@ (wrap (` [(~ (code;text key-name)) (~ (wrapper value))])) _ - (macro;fail "Wrong syntax for JSON object."))) + (meta;fail "Wrong syntax for JSON object."))) pairs)] (wrap (list (` (: JSON (#Object (dict;from-list text;Hash<Text> (list (~@ pairs'))))))))) |