let push e c a b = Cons (e, c, a, b)
let rec get i = function
- | Null -> Null, Null, E.empty_node, Void
+ | Null -> empty, empty, E.empty_node, Void
| Cons (e, c, a, b) when i = 0 -> e, c, a, b
| Cons (e, _, _, _) -> get (pred i) e
let rec fold_right f map e x = match e with
| Null -> f x
| Cons (e, c, a, b) -> fold_right (map f e c a b) map e x
+
+let rec mem err f e b = match e with
+ | Null -> err ()
+ | Cons (e, _, a, _) ->
+ if a.E.n_name = b.E.n_name then f () else mem err f e b