sig
  module Writer :
    sig
      val create :
        string ->
        Yaml.yaml_write_handler ->
        [> `writing of
             (unit -> unit) list Pervasives.ref *
             (string ->
              [< `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 ] ->
              unit) ]
    end
  module Reader :
    sig
      val create :
        string ->
        Yaml.yaml_read_handler ->
        [> `reading of
             string Pervasives.ref *
             [> `char of char
              | `end_of_list
              | `end_of_record
              | `float of float
              | `int of int
              | `list of [> `any ]
              | `record
              | `string of string
              | `tag of string ]
             Pervasives.ref * (unit -> unit) * (float -> float) ]
    end
end