Cf_dequeFunctional deque.
A functional persistent double-ended catenable deque, with Oavg(1) cost for every operation. Internally, this is a recursive data structure with height O(log N). (Note: if the deque is not the product of concatenation, then it is a pure data structure. Concatenation entails a lazy evaluation of the recursive join.)
val nil : 'a tThe empty deque.
val one : 'a -> 'a tCreate a deque containing one element.
val empty : 'a t -> boolReturns true if the deque is the empty deque.
module type Direction = sig ... endFunctions for operations on one of the two ends of a deque.