diff --git a/contrib/json.arrai b/contrib/json.arrai index 85ab2229..c3cde5b2 100644 --- a/contrib/json.arrai +++ b/contrib/json.arrai @@ -8,6 +8,8 @@ let rec simplify = \j (:a): simplify(a), (:b): b, (:s): s, + # May be used in some cases to encode arbitrarily-typed values. + (:v): simplify(v), (): {}, _: cond { # Base case: j is a number. diff --git a/contrib/json_test.arrai b/contrib/json_test.arrai index e77ff396..7523c09e 100644 --- a/contrib/json_test.arrai +++ b/contrib/json_test.arrai @@ -10,7 +10,16 @@ let (:simplify, :tuplify, :decodeSimple, :toJson, :toJsonString, ...) = //{./jso 's': (s: 'hi'), 'true': (b: true), 'false': (b: false), - }) = {'a': [1, 2], 's': 'hi', 'true': true, 'false': false}, + 'zero': 0, + 'date': (v: (ext: 123, loc: {}, wall: 0)), + }) = { + 'a': [1, 2], + 's': 'hi', + 'true': true, + 'false': false, + 'zero': 0, + 'date': {'ext': 123, 'loc': {}, 'wall': 0}, + }, ), tuplify: (