sig
  val names : string list
  val mem : (Unix_syscalls.Group.t, string array) Fieldslib.Field.t
  val gid : (Unix_syscalls.Group.t, int) Fieldslib.Field.t
  val passwd : (Unix_syscalls.Group.t, string) Fieldslib.Field.t
  val name : (Unix_syscalls.Group.t, string) Fieldslib.Field.t
  val fold :
    init:'acc__ ->
    name:('acc__ ->
          (Unix_syscalls.Group.t, string) Fieldslib.Field.t -> 'acc__) ->
    passwd:('acc__ ->
            (Unix_syscalls.Group.t, string) Fieldslib.Field.t -> 'acc__) ->
    gid:('acc__ -> (Unix_syscalls.Group.t, int) Fieldslib.Field.t -> 'acc__) ->
    mem:('acc__ ->
         (Unix_syscalls.Group.t, string array) Fieldslib.Field.t -> 'acc__) ->
    'acc__
  val make_creator :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
          'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
            'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t ->
         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t ->
         'compile_acc__ -> ('input__ -> string array) * 'compile_acc__) ->
    'compile_acc__ -> ('input__ -> Unix_syscalls.Group.t) * 'compile_acc__
  val create :
    name:string ->
    passwd:string -> gid:int -> mem:string array -> Unix_syscalls.Group.t
  val map :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> string) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> string) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t -> int) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t ->
         string array) ->
    Unix_syscalls.Group.t
  val iter :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> unit) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> unit) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t -> unit) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t -> unit) ->
    unit
  val for_all :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> bool) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> bool) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t -> bool) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t -> bool) ->
    bool
  val exists :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> bool) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> bool) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t -> bool) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t -> bool) ->
    bool
  val to_list :
    name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> 'elem__) ->
    passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t -> 'elem__) ->
    gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t -> 'elem__) ->
    mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t -> 'elem__) ->
    'elem__ list
  val map_poly :
    ([< `Read | `Set_and_create ], Unix_syscalls.Group.t, 'x0)
    Fieldslib.Field.user -> 'x0 list
  module Direct :
    sig
      val iter :
        Unix_syscalls.Group.t ->
        name:((Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
              Unix_syscalls.Group.t -> string -> unit) ->
        passwd:((Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
                Unix_syscalls.Group.t -> string -> unit) ->
        gid:((Unix_syscalls.Group.t, int) Fieldslib.Field.t ->
             Unix_syscalls.Group.t -> int -> unit) ->
        mem:((Unix_syscalls.Group.t, string array) Fieldslib.Field.t ->
             Unix_syscalls.Group.t -> string array -> unit) ->
        unit
      val fold :
        Unix_syscalls.Group.t ->
        init:'acc__ ->
        name:('acc__ ->
              (Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
              Unix_syscalls.Group.t -> string -> 'acc__) ->
        passwd:('acc__ ->
                (Unix_syscalls.Group.t, string) Fieldslib.Field.t ->
                Unix_syscalls.Group.t -> string -> 'acc__) ->
        gid:('acc__ ->
             (Unix_syscalls.Group.t, int) Fieldslib.Field.t ->
             Unix_syscalls.Group.t -> int -> 'acc__) ->
        mem:('acc__ ->
             (Unix_syscalls.Group.t, string array) Fieldslib.Field.t ->
             Unix_syscalls.Group.t -> string array -> 'acc__) ->
        'acc__
    end
end