sig
type t
type _ kind =
String : Js_string.t Js_json.kind
| Number : float Js_json.kind
| Object : Js_json.t Js_dict.t Js_json.kind
| Array : Js_json.t array Js_json.kind
| Boolean : Js.boolean Js_json.kind
| Null : Js_types.null_val Js_json.kind
val reifyType : Js_json.t -> 'b Js_json.kind * 'b
val test : 'a -> 'b Js_json.kind -> bool
val decodeString : Js_json.t -> Js_string.t option
val decodeNumber : Js_json.t -> float option
val decodeObject : Js_json.t -> Js_json.t Js_dict.t option
val decodeArray : Js_json.t -> Js_json.t array option
val decodeBoolean : Js_json.t -> Js.boolean option
val decodeNull : Js_json.t -> 'a Js_null.t option
external null : Js_json.t = "" "BS:1.7.0 @@$null@"
external string : string -> Js_json.t = "%identity"
external number : float -> Js_json.t = "%identity"
external boolean : Js.boolean -> Js_json.t = "%identity"
external object_ : Js_json.t Js_dict.t -> Js_json.t = "%identity"
external array_ : Js_json.t array -> Js_json.t = "%identity"
external array : Js_json.t array -> Js_json.t = "%identity"
external stringArray : string array -> Js_json.t = "%identity"
external numberArray : float array -> Js_json.t = "%identity"
external booleanArray : Js.boolean array -> Js_json.t = "%identity"
external objectArray : Js_json.t Js_dict.t array -> Js_json.t = "%identity"
external parse : string -> Js_json.t = "JSON.parse"
"BS:1.7.0 B@@@*JSON.parse@@"
external parseExn : string -> Js_json.t = "JSON.parse"
"BS:1.7.0 B@@@*JSON.parse@@"
external stringify : Js_json.t -> string = "JSON.stringify"
"BS:1.7.0 B@@@.JSON.stringify@@"
external stringifyAny : 'a -> string option = "JSON.stringify"
"BS:1.7.0 B@@B.JSON.stringify@@"
val reify_type : 'a -> 'b Js_json.kind * 'b
end