aboutsummaryrefslogtreecommitdiff
path: root/tools.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tools.ml')
-rwxr-xr-xtools.ml14
1 files changed, 8 insertions, 6 deletions
diff --git a/tools.ml b/tools.ml
index 53b1c15..f8f03cb 100755
--- a/tools.ml
+++ b/tools.ml
@@ -304,7 +304,7 @@ module type COMPARABLE_TYPE = sig
type 'a t
- val eq: 'a t -> 'b t -> ('a, 'b) cmp
+ val comp: 'a t -> 'b t -> ('a, 'b) cmp
end
@@ -317,7 +317,7 @@ module ArrayMap(Ord: COMPARABLE_TYPE) = struct
let find: type a. a key -> t -> a = begin fun k (Val map) ->
let rec find_ idx : a = begin
let x, v = Array.get map idx in
- match Ord.eq x k with
+ match Ord.comp x k with
| Eq -> v
| Lt -> find_ ((2 * idx) + 1)
| Gt -> find_ ((2 * idx) + 2)
@@ -326,7 +326,7 @@ module ArrayMap(Ord: COMPARABLE_TYPE) = struct
end
let from_list l = begin
- let compare (key_x, _) (key_y, _) = match Ord.eq key_x key_y with
+ let compare (key_x, _) (key_y, _) = match Ord.comp key_x key_y with
| Eq -> 0
| Lt -> -1
| Gt -> 1
@@ -401,7 +401,7 @@ module Map(Ord: COMPARABLE_TYPE) = struct
let rec add: type a. a key -> a -> t -> t = begin fun x data t -> match t with
| Empty -> Node(Empty, x, data, Empty, 1)
| Node(l, v, d, r, h) ->
- match Ord.eq x v with
+ match Ord.comp x v with
| Eq -> Node(l, x, data, r, h)
| Lt -> bal (add x data l) v d r
| Gt -> bal l v d (add x data r)
@@ -410,7 +410,7 @@ module Map(Ord: COMPARABLE_TYPE) = struct
let rec find: type a. a key -> t -> a = begin fun x t -> match t with
| Empty -> raise Not_found
| Node(l, k, v, r, _) ->
- match Ord.eq x k with
+ match Ord.comp x k with
| Eq -> v
| Lt -> find x l
| Gt -> find x r
@@ -419,12 +419,13 @@ module Map(Ord: COMPARABLE_TYPE) = struct
let rec mem: type a. a key -> t -> bool = begin fun x t -> match t with
| Empty -> false
| Node(l, k, v, r, _) ->
- match Ord.eq x k with
+ match Ord.comp x k with
| Eq -> true
| Lt -> mem x l
| Gt -> mem x r
end
+ (*
let rec fold: ('a -> wrapper -> 'a) -> 'a -> t -> 'a =
begin fun f init t -> match t with
| Empty -> init
@@ -433,4 +434,5 @@ module Map(Ord: COMPARABLE_TYPE) = struct
let result = f res_left @@ Ex (k, v) in
fold f result r
end
+ *)
end