type 'a t = {front : 'a list;frontLen : int;rear : 'a list;rearLen : int;
}val isEmpty : 'a t -> boolval maintain : 'a t -> 'a tval addFirst : 'a -> 'a t -> 'a tval getFirstExn : 'a t -> 'aval removeFirstExn : 'a t -> 'a tval addLast : 'a -> 'a t -> 'a tval getLastExn : 'a t -> 'aval removeLastExn : 'a t -> 'a tval reverse : 'a t -> 'a tval fromList : 'a list -> 'a tval toList : 'el t -> 'el list