sig
  class type ['a] obj_input_channel =
    object method close_in : unit -> unit method get : unit -> 'end
  class type ['a] obj_output_channel =
    object
      method close_out : unit -> unit
      method flush : unit -> unit
      method put : '-> unit
    end
  class ['a] channel_of_stream : 'Stream.t -> ['a] obj_input_channel
  val stream_of_channel :
    '#CamomileLibrary.Type.OOChannel.obj_input_channel -> 'Stream.t
  class type char_input_channel =
    object
      method close_in : unit -> unit
      method input : string -> int -> int -> int
    end
  class type char_output_channel =
    object
      method close_out : unit -> unit
      method flush : unit -> unit
      method output : string -> int -> int -> int
    end
  class char_input_channel_of :
    char #CamomileLibrary.Type.OOChannel.obj_input_channel ->
    char_input_channel
  class char_obj_input_channel_of :
    CamomileLibrary.Type.OOChannel.char_input_channel ->
    [char] obj_input_channel
  class char_output_channel_of :
    char #CamomileLibrary.Type.OOChannel.obj_output_channel ->
    char_output_channel
  class char_obj_output_channel_of :
    CamomileLibrary.Type.OOChannel.char_output_channel ->
    [char] obj_output_channel
  class of_in_channel : Pervasives.in_channel -> char_input_channel
  class of_out_channel : Pervasives.out_channel -> char_output_channel
end