sig
  type ('a, -'permissions) t
  val mem :
    ?equal:('a -> 'a -> bool) ->
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    'a -> bool
  val length :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t -> int
  val is_empty :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t -> bool
  val iter :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> unit) -> unit
  val fold :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum
  val exists :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> bool) -> bool
  val for_all :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> bool) -> bool
  val count :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> bool) -> int
  val sum :
    (module Commutative_group.S with type t = 'sum) ->
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> 'sum) -> 'sum
  val find :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> bool) -> 'a option
  val find_map :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    f:('a -> 'b option) -> 'b option
  val to_list :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t -> 'a list
  val to_array :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t -> 'a array
  val min_elt :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    cmp:('a -> 'a -> int) -> 'a option
  val max_elt :
    ('a, [> Perms.Export.read ]) Container_intf.S1_permissions.t ->
    cmp:('a -> 'a -> int) -> 'a option
end