val iter : (elt -> 'a) -> t -> unit
val rev : t -> t
val rev_map : (elt -> elt) -> t -> t
+ val length : t -> int
end
module Make ( H : Hcons.S ) : S with type elt = H.t =
let rev l = fold cons l nil
let rev_map f l = fold (fun x acc -> cons (f x) acc) l nil
-
+ let length l = fold (fun _ c -> c+1) l 0
end