`sig
type ('key, 'a, 'cmp) t = private ('key, 'a, 'cmp) Std_internal.Map.t
val to_map :
('key, 'a, 'cmp) Total_map.t -> ('key, 'a, 'cmp) Std_internal.Map.t
val map :
('key, 'a, 'cmp) Total_map.t ->
f:('a -> 'b) -> ('key, 'b, 'cmp) Total_map.t
val mapi :
('key, 'a, 'cmp) Total_map.t ->
f:(key:'key -> data:'a -> 'b) -> ('key, 'b, 'cmp) Total_map.t
val map2 :
('key, 'a, 'cmp) Total_map.t ->
('key, 'b, 'cmp) Total_map.t ->
f:('a -> 'b -> 'c) -> ('key, 'c, 'cmp) Total_map.t
val iter :
('key, 'a, 'b) Total_map.t -> f:(key:'key -> data:'a -> unit) -> unit
val iter2 :
('key, 'a, 'cmp) Total_map.t ->
('key, 'b, 'cmp) Total_map.t -> f:(key:'key -> 'a -> 'b -> unit) -> unit
val set :
('key, 'a, 'cmp) Total_map.t ->
'key -> 'a -> ('key, 'a, 'cmp) Total_map.t
val to_alist : ('key, 'a, 'b) Total_map.t -> ('key * 'a) list
val find : ('key, 'a, 'b) Total_map.t -> 'key -> 'a
val change :
('key, 'a, 'cmp) Total_map.t ->
'key -> ('a -> 'a) -> ('key, 'a, 'cmp) Total_map.t
module type Key =
sig
type t
val all : Total_map.Key.t list
val compare : Total_map.Key.t -> Total_map.Key.t -> int
val bin_t : Total_map.Key.t Bin_prot.Type_class.t
val bin_read_t : Total_map.Key.t Bin_prot.Read.reader
val __bin_read_t__ : (int -> Total_map.Key.t) Bin_prot.Read.reader
val bin_reader_t : Total_map.Key.t Bin_prot.Type_class.reader
val bin_size_t : Total_map.Key.t Bin_prot.Size.sizer
val bin_write_t : Total_map.Key.t Bin_prot.Write.writer
val bin_writer_t : Total_map.Key.t Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> Total_map.Key.t
val sexp_of_t : Total_map.Key.t -> Sexplib.Sexp.t
end
module type S =
sig
module Key : Key
type comparator_witness
type 'a t = (Key.t, 'a, comparator_witness) t
val return : 'a -> 'a t
val apply : ('a -> 'b) t -> 'a t -> 'b t
val map : 'a t -> f:('a -> 'b) -> 'b t
val map2 : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t
val map3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> 'd) -> 'd t
val all : 'a t list -> 'a list t
val both : 'a t -> 'b t -> ('a * 'b) t
module Applicative_infix :
sig
val ( <*> ) : ('a -> 'b) t -> 'a t -> 'b t
val ( <* ) : 'a t -> unit t -> 'a t
val ( *> ) : unit t -> 'a t -> 'a t
end
val ( <*> ) : ('a -> 'b) t -> 'a t -> 'b t
val ( <* ) : 'a t -> unit t -> 'a t
val ( *> ) : unit t -> 'a t -> 'a t
val create : (Total_map.Key.t -> 'a) -> 'a Total_map.t
val compare :
('a -> 'a -> int) -> 'a Total_map.t -> 'a Total_map.t -> int
val bin_t :
'a Bin_prot.Type_class.t -> 'a Total_map.t Bin_prot.Type_class.t
val bin_read_t :
'a Bin_prot.Read.reader -> 'a Total_map.t Bin_prot.Read.reader
val __bin_read_t__ :
'a Bin_prot.Read.reader ->
(int -> 'a Total_map.t) Bin_prot.Read.reader
val bin_reader_t :
'a Bin_prot.Type_class.reader ->
'a Total_map.t Bin_prot.Type_class.reader
val bin_size_t :
'a Bin_prot.Size.sizer -> 'a Total_map.t Bin_prot.Size.sizer
val bin_write_t :
'a Bin_prot.Write.writer -> 'a Total_map.t Bin_prot.Write.writer
val bin_writer_t :
'a Bin_prot.Type_class.writer ->
'a Total_map.t Bin_prot.Type_class.writer
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a Total_map.t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Total_map.t -> Sexplib.Sexp.t
end
module Make :
functor (Key : Key) ->
sig
module Key :
sig
type t = Key.t
val all : t list
val compare : t -> t -> int
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
end
type comparator_witness
type 'a t = (Key.t, 'a, comparator_witness) t
val return : 'a -> 'a t
val apply : ('a -> 'b) t -> 'a t -> 'b t
val map : 'a t -> f:('a -> 'b) -> 'b t
val map2 : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t
val map3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> 'd) -> 'd t
val all : 'a t list -> 'a list t
val both : 'a t -> 'b t -> ('a * 'b) t
module Applicative_infix :
sig
val ( <*> ) : ('a -> 'b) t -> 'a t -> 'b t
val ( <* ) : 'a t -> unit t -> 'a t
val ( *> ) : unit t -> 'a t -> 'a t
end
val ( <*> ) : ('a -> 'b) t -> 'a t -> 'b t
val ( <* ) : 'a t -> unit t -> 'a t
val ( *> ) : unit t -> 'a t -> 'a t
val create : (Key.t -> 'a) -> 'a t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val bin_t : 'a Bin_prot.Type_class.t -> 'a t Bin_prot.Type_class.t
val bin_read_t : 'a Bin_prot.Read.reader -> 'a t Bin_prot.Read.reader
val __bin_read_t__ :
'a Bin_prot.Read.reader -> (int -> 'a t) Bin_prot.Read.reader
val bin_reader_t :
'a Bin_prot.Type_class.reader -> 'a t Bin_prot.Type_class.reader
val bin_size_t : 'a Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizer
val bin_write_t :
'a Bin_prot.Write.writer -> 'a t Bin_prot.Write.writer
val bin_writer_t :
'a Bin_prot.Type_class.writer -> 'a t Bin_prot.Type_class.writer
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
end
end`