sig
  val adaptor :
    ?comments:string ->
    ?blanks:bool ->
    ?max:int ->
    char ->
    (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : < names : Line.absent; options : Line.present >; fstab : 'a;
       group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e; ps : 'f;
       seq : 'g; source : 'h; stat : 'i >)
    Adaptor.adaptor
  val fitting :
    ?comments:string ->
    ?blanks:bool ->
    ?max:int ->
    char ->
    (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : < names : Line.absent; options : Line.present >; fstab : 'a;
       group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e; ps : 'f;
       seq : 'g; source : 'h; stat : 'i >)
    Adaptor.fitting_adaptor
  val reader : ?comments:string -> ?blanks:bool -> Reader.t
  val splitter :
    ?max:int ->
    char ->
    (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
       mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h; stat : 'i > ->
     < delim : < names : Line.absent; options : Line.present >; fstab : 'a;
       group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e; ps : 'f;
       seq : 'g; source : 'h; stat : 'i >)
    Adaptor.splitter
  module type SPEC =
    sig
      val comments : string option
      val blanks : bool
      val max : int
      val delim : char
    end
  module type S =
    sig
      val comments : string option
      val blanks : bool
      val max : int
      val delim : char
      val adaptor :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.absent; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.adaptor
      val fitting :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.absent; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.fitting_adaptor
      val reader : Reader.t
      val splitter :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.absent; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.splitter
    end
  module Make : functor (Spec : SPEC-> S
  module type SPEC_NAMES =
    sig
      val comments : string option
      val blanks : bool
      val max : int
      val delim : char
      val names : string list
    end
  module type S_NAMES =
    sig
      val comments : string option
      val blanks : bool
      val max : int
      val delim : char
      val names : string list
      val adaptor :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.present; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.adaptor
      val fitting :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.present; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.fitting_adaptor
      val reader : Reader.t
      val splitter :
        (< delim : Line.absent; fstab : 'a; group : 'b; key_value : 'c;
           mailcap : 'd; passwd : 'e; ps : 'f; seq : 'g; source : 'h;
           stat : 'i > ->
         < delim : < names : Line.present; options : Line.present >;
           fstab : 'a; group : 'b; key_value : 'c; mailcap : 'd; passwd : 'e;
           ps : 'f; seq : 'g; source : 'h; stat : 'i >)
        Adaptor.splitter
    end
  module Make_names : functor (Spec : SPEC_NAMES-> S_NAMES
end