Add fold_left/right functions to the set interface (iterate in
[tatoo.git] / src / finiteCofinite.ml
index 019ae65..9963e1f 100644 (file)
@@ -141,6 +141,14 @@ struct
     | Finite s -> E.fold f s a
     | CoFinite _ -> raise exn
 
     | Finite s -> E.fold f s a
     | CoFinite _ -> raise exn
 
+  let fold_left f t a = match t.node with
+    | Finite s -> E.fold_left f s a
+    | CoFinite _ -> raise exn
+
+  let fold_right f t a = match t.node with
+    | Finite s -> E.fold_right f s a
+    | CoFinite _ -> raise exn
+
   let iter f t = match t.node with
     | Finite t -> E.iter f t
     | CoFinite _ -> raise exn
   let iter f t = match t.node with
     | Finite t -> E.iter f t
     | CoFinite _ -> raise exn
@@ -202,12 +210,12 @@ struct
     | CoFinite _ -> raise exn
 
   let positive t = match t.node with
     | CoFinite _ -> raise exn
 
   let positive t = match t.node with
-      | Finite x -> x
-      | CoFinite _ -> E.empty
+    | Finite x -> x
+    | CoFinite _ -> E.empty
 
   let negative t = match t.node with
 
   let negative t = match t.node with
-      | CoFinite x -> x
-      | Finite _ -> E.empty
+    | CoFinite x -> x
+    | Finite _ -> E.empty
 
   let inj_positive t = finite t
   let inj_negative t = cofinite t
 
   let inj_positive t = finite t
   let inj_negative t = cofinite t