sig
exception Bug of string
exception Empty
type 'a t
val test_invariants : 'a Fqueue.t -> unit
val empty : 'a Fqueue.t
val push : 'a -> 'a Fqueue.t -> 'a Fqueue.t
val push_top : 'a -> 'a Fqueue.t -> 'a Fqueue.t
val enq : 'a -> 'a Fqueue.t -> 'a Fqueue.t
val bot_exn : 'a Fqueue.t -> 'a
val bot : 'a Fqueue.t -> 'a option
val top_exn : 'a Fqueue.t -> 'a
val top : 'a Fqueue.t -> 'a option
val pop_exn : 'a Fqueue.t -> 'a * 'a Fqueue.t
val pop : 'a Fqueue.t -> ('a * 'a Fqueue.t) option
val deq : 'a Fqueue.t -> ('a * 'a Fqueue.t) option
val deq_exn : 'a Fqueue.t -> 'a * 'a Fqueue.t
val discard : 'a Fqueue.t -> 'a Fqueue.t
val to_list : 'a Fqueue.t -> 'a list
val length : 'a Fqueue.t -> int
val is_empty : 'a Fqueue.t -> bool
end