aboutsummaryrefslogtreecommitdiff
path: root/lib/cMap.ml
diff options
context:
space:
mode:
authorMatej Kosik2016-08-25 14:31:30 +0200
committerMatej Kosik2016-08-25 14:31:30 +0200
commita2b0c48d8b531ae1b193eed4dec1afeaa67fbece (patch)
treeaf83d8a0fb79c51e13c44bc60be9cde810f87152 /lib/cMap.ml
parent1297523bffdc3a9fe3e447acc6837be835e86d06 (diff)
parent7244637f251272c0d0155d49fc7c1af255b7cef8 (diff)
Merge remote-tracking branch 'v8.6' into trunk
Diffstat (limited to 'lib/cMap.ml')
-rw-r--r--lib/cMap.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/cMap.ml b/lib/cMap.ml
index 4b058380c6..ba0873ffa7 100644
--- a/lib/cMap.ml
+++ b/lib/cMap.ml
@@ -34,6 +34,7 @@ sig
val fold_right : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val smartmap : ('a -> 'a) -> 'a t -> 'a t
val smartmapi : (key -> 'a -> 'a) -> 'a t -> 'a t
+ val height : 'a t -> int
module Unsafe :
sig
val map : (key -> 'a -> key * 'b) -> 'a t -> 'b t
@@ -57,6 +58,7 @@ sig
val fold_right : (M.t -> 'a -> 'b -> 'b) -> 'a map -> 'b -> 'b
val smartmap : ('a -> 'a) -> 'a map -> 'a map
val smartmapi : (M.t -> 'a -> 'a) -> 'a map -> 'a map
+ val height : 'a map -> int
module Unsafe :
sig
val map : (M.t -> 'a -> M.t * 'b) -> 'a map -> 'b map
@@ -168,6 +170,10 @@ struct
if l == l' && r == r' && v == v' then s
else map_inj (MNode (l', k, v', r', h))
+ let height s = match map_prj s with
+ | MEmpty -> 0
+ | MNode (_, _, _, _, h) -> h
+
module Unsafe =
struct