sig
  type separator = [ `CR | `CRLF | `LF | `LS | `NEL | `PS ]
  class input :
    CamomileLibrary.Type.ULine.separator ->
    CamomileLibrary.Type.UChar.t
    #CamomileLibrary.Type.OOChannel.obj_input_channel ->
    [CamomileLibrary.Type.UChar.t] OOChannel.obj_input_channel
  class output :
    CamomileLibrary.Type.ULine.separator ->
    CamomileLibrary.Type.UChar.t
    #CamomileLibrary.Type.OOChannel.obj_output_channel ->
    [CamomileLibrary.Type.UChar.t] OOChannel.obj_output_channel
  module type Type =
    sig
      type text
      class input_line :
        CamomileLibrary.Type.UChar.t
        #CamomileLibrary.Type.OOChannel.obj_input_channel ->
        [CamomileLibrary.Type.ULine.Type.text] OOChannel.obj_input_channel
      class output_line :
        ?sp:CamomileLibrary.Type.ULine.separator ->
        CamomileLibrary.Type.UChar.t
        #CamomileLibrary.Type.OOChannel.obj_output_channel ->
        [CamomileLibrary.Type.ULine.Type.text] OOChannel.obj_output_channel
    end
  module Make :
    functor (Text : UnicodeString.Type->
      sig
        type text = Text.t
        class input_line :
          UChar.t #OOChannel.obj_input_channel ->
          [text] OOChannel.obj_input_channel
        class output_line :
          ?sp:separator ->
          UChar.t #OOChannel.obj_output_channel ->
          [text] OOChannel.obj_output_channel
      end
end