sig
  val pp_print_abstr : Format.formatter -> [>  ] -> unit
  val create_abstr :
    ?pp:(Format.formatter ->
         ([> `end_of_list
           | `end_of_record
           | `list of [> `any ]
           | `none
           | `record
           | `some ]
          as 'a) ->
         unit) ->
    Format.formatter ->
    [> `writing of
         (unit -> unit) list Pervasives.ref * (string -> '-> unit) ]
  type pervasives_variant =
      [ `bool of bool
      | `char of char
      | `float of float
      | `int of int
      | `string of string
      | `tag of string ]
  val pp_pervasives :
    ?pp:(Format.formatter ->
         ([> Serialize_pp.pervasives_variant ] as 'a) -> unit) ->
    Format.formatter -> '-> unit
  val pp_serialize :
    ?pp:(Format.formatter ->
         ([> `end_of_list
           | `end_of_record
           | `list of [< `any | `record ]
           | `record ]
          as 'a) ->
         unit) ->
    Format.formatter -> '-> unit
  val create :
    ?pp:(Format.formatter ->
         ([> `bool of bool
           | `char of char
           | `end_of_list
           | `end_of_record
           | `float of float
           | `int of int
           | `list of [> `any ]
           | `none
           | `record
           | `some
           | `string of string
           | `tag of string ]
          as 'a) ->
         unit) ->
    Format.formatter ->
    [> `writing of
         (unit -> unit) list Pervasives.ref * (string -> '-> unit) ]
end