sig
  val names : string list
  val tests :
    ([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
    Fieldslib.Field.t_with_perm
  val name :
    ([< `Read | `Set_and_create ], Test.t, string)
    Fieldslib.Field.t_with_perm
  val make_creator :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> '-> ('-> string) * 'c) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm ->
           '-> ('-> Test.Basic_test.t list) * 'd) ->
    '-> ('-> Test.t) * 'd
  val create : name:string -> tests:Test.Basic_test.t list -> Test.t
  val map :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> string) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> Test.Basic_test.t list) ->
    Test.t
  val iter :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> 'a) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> 'b) ->
    'b
  val fold :
    init:'->
    name:('->
          ([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> 'b) ->
    tests:('->
           ([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> 'c) ->
    'c
  val map_poly :
    ([< `Read | `Set_and_create ], Test.t, 'a) Fieldslib.Field.user ->
    'a list
  val for_all :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> bool) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val exists :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> bool) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val to_list :
    name:(([< `Read | `Set_and_create ], Test.t, string)
          Fieldslib.Field.t_with_perm -> 'a) ->
    tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
           Fieldslib.Field.t_with_perm -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Test.t ->
        name:(([< `Read | `Set_and_create ], Test.t, string)
              Fieldslib.Field.t_with_perm -> Test.t -> string -> 'a) ->
        tests:(([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
               Fieldslib.Field.t_with_perm ->
               Test.t -> Test.Basic_test.t list -> 'b) ->
        'b
      val fold :
        Test.t ->
        init:'->
        name:('->
              ([< `Read | `Set_and_create ], Test.t, string)
              Fieldslib.Field.t_with_perm -> Test.t -> string -> 'b) ->
        tests:('->
               ([< `Read | `Set_and_create ], Test.t, Test.Basic_test.t list)
               Fieldslib.Field.t_with_perm ->
               Test.t -> Test.Basic_test.t list -> 'c) ->
        'c
    end
end