diff options
| author | Matej Kosik | 2016-08-25 14:31:30 +0200 |
|---|---|---|
| committer | Matej Kosik | 2016-08-25 14:31:30 +0200 |
| commit | a2b0c48d8b531ae1b193eed4dec1afeaa67fbece (patch) | |
| tree | af83d8a0fb79c51e13c44bc60be9cde810f87152 /lib/cMap.ml | |
| parent | 1297523bffdc3a9fe3e447acc6837be835e86d06 (diff) | |
| parent | 7244637f251272c0d0155d49fc7c1af255b7cef8 (diff) | |
Merge remote-tracking branch 'v8.6' into trunk
Diffstat (limited to 'lib/cMap.ml')
| -rw-r--r-- | lib/cMap.ml | 6 |
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 |
