`sig
type 'a t
type key
val empty : 'a Splay_tree.S.t
val is_empty : 'a Splay_tree.S.t -> bool
val length : 'a Splay_tree.S.t -> int
val keys : 'a Splay_tree.S.t -> Splay_tree.S.key list
val data : 'a Splay_tree.S.t -> 'a list
val to_alist : 'a Splay_tree.S.t -> (Splay_tree.S.key * 'a) list
val mem : 'a Splay_tree.S.t -> Splay_tree.S.key -> 'a Splay_tree.S.t * bool
val find :
'a Splay_tree.S.t -> Splay_tree.S.key -> 'a Splay_tree.S.t * 'a option
val set :
'a Splay_tree.S.t -> key:Splay_tree.S.key -> data:'a -> 'a Splay_tree.S.t
val delete : 'a Splay_tree.S.t -> Splay_tree.S.key -> 'a Splay_tree.S.t
val delete_min :
'a Splay_tree.S.t -> (Splay_tree.S.key * 'a * 'a Splay_tree.S.t) option
val delete_max :
'a Splay_tree.S.t -> (Splay_tree.S.key * 'a * 'a Splay_tree.S.t) option
val delete_after :
'a Splay_tree.S.t ->
Splay_tree.S.key -> (Splay_tree.S.key * 'a * 'a Splay_tree.S.t) option
val delete_before :
'a Splay_tree.S.t ->
Splay_tree.S.key -> (Splay_tree.S.key * 'a * 'a Splay_tree.S.t) option
val map : 'a Splay_tree.S.t -> f:('a -> 'b) -> 'b Splay_tree.S.t
val map_range :
'a Splay_tree.S.t ->
min_key:Splay_tree.S.key ->
max_key:Splay_tree.S.key ->
f:((Splay_tree.S.key * 'a) list -> (Splay_tree.S.key * 'a) list) ->
'a Splay_tree.S.t
val split :
'a Splay_tree.S.t ->
Splay_tree.S.key -> 'a Splay_tree.S.t * 'a option * 'a Splay_tree.S.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a Splay_tree.S.t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Splay_tree.S.t -> Sexplib.Sexp.t
val key_of_sexp : Sexplib.Sexp.t -> Splay_tree.S.key
val sexp_of_key : Splay_tree.S.key -> Sexplib.Sexp.t
end`