sig
type 'a t
val init : ?i:int -> 'a -> 'a Kw.??.t
val n : 'a Kw.??.t -> int
val acc : 'a Kw.??.t -> 'a
val pair : 'a Kw.??.t -> int * 'a
val update : ?i:int -> ('a -> 'b -> 'c) -> 'a Kw.??.t -> 'b -> 'c Kw.??.t
val incr : ?i:int -> 'a Kw.??.t -> 'a Kw.??.t
val withcount : (int -> 'a) -> 'b Kw.??.t -> 'b
end