`type 'a t`

The type of JSON parser/printer for value of type `'a`.

`val make : (Stdlib.Buffer.t -> 'a -> unit) -> (Deriving_Json_lexer.lexbuf -> 'a) -> 'a t`
`val write : 'a t -> Stdlib.Buffer.t -> 'a -> unit`
`val read : 'a t -> Deriving_Json_lexer.lexbuf -> 'a`
`val to_string : 'a t -> 'a -> string`

`to_string Json.t<ty> v` marshal the `v` of type `ty` to a JSON string.

`val from_string : 'a t -> string -> 'a`

`from_string Json.t<ty> s` safely unmarshal the JSON `s` into an OCaml value of type `ty`. Throws `Failure` if the received value isn't the javascript representation of a value of type `ty`.

`module type Json = sig ... end`

The signature of the JSON class.

Deriver

`module type Json_min = sig ... end`
`module type Json_min' = sig ... end`
`module type Json_min'' = sig ... end`
`module Defaults (J : Json_min) : Json with type a = J.a`
`module Defaults' (J : Json_min') : Json with type a = J.a`
`module Defaults'' (J : Json_min'') : Json with type a = J.a`
`module Json_char : Json with type a = char`
`module Json_bool : Json with type a = bool`
`module Json_unit : Json with type a = unit`
`module Json_int : Json with type a = int`
`module Json_int32 : Json with type a = int32`
`module Json_int64 : Json with type a = int64`
`module Json_nativeint : Json with type a = nativeint`
`module Json_float : Json with type a = float`
`module Json_string : Json with type a = string`
`module Json_list (A : Json) : Json with type a = A.a list`
`module Json_ref (A : Json) : Json with type a = A.a Stdlib.ref`
`module Json_option (A : Json) : Json with type a = A.a option`
`module Json_array (A : Json) : Json with type a = A.a array`
`val read_list : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a list`
`val write_list : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a list -> unit`
`val read_ref : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a Stdlib.ref`
`val write_ref : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a Stdlib.ref -> unit`
`val read_option : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a option`
`val write_option : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a option -> unit`
`val read_array : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a array`
`val write_array : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a array -> unit`