(* *)
(***********************************************************************)
-
-type node = Naive_tree.node
-type cell = { node : node;
- mutable next : cell }
-
-
-type t = { mutable length : int;
- mutable head : cell;
- mutable last : cell; }
-
-let rec nil = { node = Naive_tree.nil;
- next = nil }
-
-let create () = { length = 0;
- head = nil;
- last = nil }
-
-let iter f l =
- let rec loop c =
- if c != nil then begin
- f c.node;
- loop c.next
- end
- in
- loop l.head
-
-
-let length l = l.length
-
-
-let add n l =
- let ncell = { node = n;
- next = nil }
- in
- if l.last == nil then
- { length = 1;
- head = ncell;
- last = ncell }
- else
- let () = l.last.next <- ncell in
- { length = l.length + 1;
- head = l.head;
- last = ncell }
+include Deque.Make (struct type t = Naive_tree.node end)