sig
  val adaptor :
    ?comment:string ->
    ?delim:char ->
    ?end_section:string ->
    string ->
    (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : 'a; fstab : 'b; group : 'c;
       key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
       ps : 'f; seq : 'g; source : 'h; stat : 'i >)
    Adaptor.adaptor
  val fitting :
    ?comment:string ->
    ?delim:char ->
    ?end_section:string ->
    string ->
    (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : 'a; fstab : 'b; group : 'c;
       key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
       ps : 'f; seq : 'g; source : 'h; stat : 'i >)
    Adaptor.fitting_adaptor
  val reader : ?comment:string -> Reader.t
  val splitter :
    ?delim:char ->
    ?end_section:string ->
    string ->
    (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : 'a; fstab : 'b; group : 'c;
       key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
       ps : 'f; seq : 'g; source : 'h; stat : 'i >)
    Adaptor.splitter
  module type SPEC =
    sig
      val section : string
      val delim : char
      val comment : string
      val end_section : string option
    end
  module type S =
    sig
      val section : string
      val delim : char
      val comment : string
      val end_section : string option
      val adaptor :
        (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : 'a; fstab : 'b; group : 'c;
           key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.adaptor
      val fitting :
        (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : 'a; fstab : 'b; group : 'c;
           key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.fitting_adaptor
      val reader : Reader.t
      val new_splitter :
        unit ->
        (< delim : 'a; fstab : 'b; group : 'c; key_value : Line.absent;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : 'a; fstab : 'b; group : 'c;
           key_value : < section : Line.present >; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.splitter
    end
  module Make : functor (Spec : SPEC-> S
end