val is_empty : _ t -> boolval has_some : _ t -> boolval push_front : 'a -> 'a t -> 'a tval push_rear : 'a -> 'a t -> 'a tval pop_front : 'a t -> ('a * 'a t) optionval update_first : ('a -> 'a) -> 'a t -> 'a tval update_last : ('a -> 'a) -> 'a t -> 'a tval to_list : 'a t -> 'a list