@@ -130,6 +130,7 @@ json = prefix "JSON"
130 , "findObject" -: string ==> jsonObject ==> jsonObject
130 , "findObject" -: string ==> jsonObject ==> jsonObject
131 , "findArray" -: string ==> jsonObject ==> listOf jsonValue
131 , "findArray" -: string ==> jsonObject ==> listOf jsonValue
132 , "findString" -: string ==> jsonObject ==> string
132 , "findString" -: string ==> jsonObject ==> string
133+ , "findNumber" -: float ==> jsonObject ==> float
133 , "findWithDefault" -:: jsonValue ==> string ==> jsonObject ==> jsonValue
134 , "findWithDefault" -:: jsonValue ==> string ==> jsonObject ==> jsonValue
134 , "toPrettyString" -: string ==> jsonObject ==> string
135 , "toPrettyString" -: string ==> jsonObject ==> string
135 , "toPrettyJSString" -: string ==> jsonObject ==> jsString
136 , "toPrettyJSString" -: string ==> jsonObject ==> jsString
@@ -285,7 +286,7 @@ math =
287 [ "not" -: bool ==> bool ] ++
288 [ "not" -: bool ==> bool ] ++
288− hasType (binop bool) ["&&","||"] ++
289+ hasType (binop bool) ["&&","||","xor"] ++
289 map (scheme1 comparable (\t -> t ==> t ==> bool)) ["<",">","<=",">="] ++
290 map (scheme1 comparable (\t -> t ==> t ==> bool)) ["<",">","<=",">="] ++
290 [ ( "compare"
291 [ ( "compare"
291 , Forall [0,1] [ ctx "compare" $ VarT 0 :<: comparable ] (VarT 0 ==> VarT 0 ==> VarT 1) )
292 , Forall [0,1] [ ctx "compare" $ VarT 0 :<: comparable ] (VarT 0 ==> VarT 0 ==> VarT 1) )
@@ -313,7 +314,7 @@ funcs =
313 , "flip" -:: (a ==> b ==> c) ==> (b ==> a ==> c)
314 , "flip" -:: (a ==> b ==> c) ==> (b ==> a ==> c)
314 , "." -:: (b ==> c) ==> (a ==> b) ==> (a ==> c)
315 , "." -:: (b ==> c) ==> (a ==> b) ==> (a ==> c)
315 , "$" -:: (a ==> b) ==> a ==> b
316 , "$" -:: (a ==> b) ==> a ==> b
316− , ":" -:: a ==> listOf a ==> listOf a
317+ , ":" -:: a ==> listOf a ==> listOf a
317 , (,) "++" . Forall [0,1] [ ctx "++" $ VarT 0 :<: appendable (VarT 1) ] $ VarT 0 ==> VarT 0 ==> VarT 0
318 , (,) "++" . Forall [0,1] [ ctx "++" $ VarT 0 :<: appendable (VarT 1) ] $ VarT 0 ==> VarT 0 ==> VarT 0
318 , "Cons" -:: a ==> listOf a ==> listOf a
319 , "Cons" -:: a ==> listOf a ==> listOf a
319 , "Nil" -:: listOf a
320 , "Nil" -:: listOf a