`sig
module Strategy : Res__.Strat.T
type strategy = Strategy.t
type 'a t
val length : 'a Weak_intf.T.t -> int
val lix : 'a Weak_intf.T.t -> int
val real_length : 'a Weak_intf.T.t -> int
val real_lix : 'a Weak_intf.T.t -> int
val get : 'a Weak_intf.T.t -> int -> 'a option
val get_copy : 'a Weak_intf.T.t -> int -> 'a option
val check : 'a Weak_intf.T.t -> int -> bool
val set : 'a Weak_intf.T.t -> int -> 'a option -> unit
val sempty : Weak_intf.T.strategy -> 'a Weak_intf.T.t
val empty : unit -> 'a Weak_intf.T.t
val screate : Weak_intf.T.strategy -> int -> 'a Weak_intf.T.t
val create : int -> 'a Weak_intf.T.t
val sinit :
Weak_intf.T.strategy -> int -> (int -> 'a option) -> 'a Weak_intf.T.t
val init : int -> (int -> 'a option) -> 'a Weak_intf.T.t
val get_strategy : 'a Weak_intf.T.t -> Weak_intf.T.strategy
val set_strategy : 'a Weak_intf.T.t -> Weak_intf.T.strategy -> unit
val put_strategy : 'a Weak_intf.T.t -> Weak_intf.T.strategy -> unit
val enforce_strategy : 'a Weak_intf.T.t -> unit
val copy : 'a Weak_intf.T.t -> 'a Weak_intf.T.t
val sub : 'a Weak_intf.T.t -> int -> int -> 'a Weak_intf.T.t
val fill : 'a Weak_intf.T.t -> int -> int -> 'a option -> unit
val blit :
'a Weak_intf.T.t -> int -> 'a Weak_intf.T.t -> int -> int -> unit
val append : 'a Weak_intf.T.t -> 'a Weak_intf.T.t -> 'a Weak_intf.T.t
val concat : 'a Weak_intf.T.t list -> 'a Weak_intf.T.t
val add_one : 'a Weak_intf.T.t -> 'a option -> unit
val remove_one : 'a Weak_intf.T.t -> unit
val remove_n : 'a Weak_intf.T.t -> int -> unit
val remove_range : 'a Weak_intf.T.t -> int -> int -> unit
val clear : 'a Weak_intf.T.t -> unit
val swap : 'a Weak_intf.T.t -> int -> int -> unit
val swap_in_last : 'a Weak_intf.T.t -> int -> unit
val to_std : 'a Weak_intf.T.t -> 'a Stdlib.Weak.t
val sof_std : Weak_intf.T.strategy -> 'a Stdlib.Weak.t -> 'a Weak_intf.T.t
val of_std : 'a Stdlib.Weak.t -> 'a Weak_intf.T.t
val to_list : 'a Weak_intf.T.t -> 'a option list
val of_list : 'a option list -> 'a Weak_intf.T.t
val iter : ('a option -> unit) -> 'a Weak_intf.T.t -> unit
val iteri : (int -> 'a option -> unit) -> 'a Weak_intf.T.t -> unit
val fold_left : ('b -> 'a option -> 'b) -> 'b -> 'a Weak_intf.T.t -> 'b
val fold_right : ('a option -> 'b -> 'b) -> 'a Weak_intf.T.t -> 'b -> 'b
val for_all : ('a option -> bool) -> 'a Weak_intf.T.t -> bool
val exists : ('a option -> bool) -> 'a Weak_intf.T.t -> bool
val mem : 'a option -> 'a Weak_intf.T.t -> bool
val memq : 'a option -> 'a Weak_intf.T.t -> bool
val pos : 'a option -> 'a Weak_intf.T.t -> int option
val posq : 'a option -> 'a Weak_intf.T.t -> int option
val find : ('a option -> bool) -> 'a Weak_intf.T.t -> 'a option
val find_index : ('a option -> bool) -> 'a Weak_intf.T.t -> int -> int
val filter : ('a option -> bool) -> 'a Weak_intf.T.t -> 'a Weak_intf.T.t
val find_all : ('a option -> bool) -> 'a Weak_intf.T.t -> 'a Weak_intf.T.t
val filter_in_place : ('a option -> bool) -> 'a Weak_intf.T.t -> unit
val partition :
('a option -> bool) ->
'a Weak_intf.T.t -> 'a Weak_intf.T.t * 'a Weak_intf.T.t
val unsafe_get : 'a Weak_intf.T.t -> int -> 'a option
val unsafe_set : 'a Weak_intf.T.t -> int -> 'a option -> unit
val unsafe_sub : 'a Weak_intf.T.t -> int -> int -> 'a Weak_intf.T.t
val unsafe_fill : 'a Weak_intf.T.t -> int -> int -> 'a option -> unit
val unsafe_blit :
'a Weak_intf.T.t -> int -> 'a Weak_intf.T.t -> int -> int -> unit
val unsafe_remove_one : 'a Weak_intf.T.t -> unit
val unsafe_remove_n : 'a Weak_intf.T.t -> int -> unit
val unsafe_swap : 'a Weak_intf.T.t -> int -> int -> unit
val unsafe_swap_in_last : 'a Weak_intf.T.t -> int -> unit
end`