| 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
| 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
- | CoFinite x -> x
- | Finite _ -> E.empty
+ | CoFinite x -> x
+ | Finite _ -> E.empty
let inj_positive t = finite t
let inj_negative t = cofinite t