sig
  type 'a t
  val create : int -> 'a CCBlockingQueue.t
  val push : 'a CCBlockingQueue.t -> 'a -> unit
  val take : 'a CCBlockingQueue.t -> 'a
  val push_list : 'a CCBlockingQueue.t -> 'a list -> unit
  val take_list : 'a CCBlockingQueue.t -> int -> 'a list
  val try_take : 'a CCBlockingQueue.t -> 'a option
  val try_push : 'a CCBlockingQueue.t -> 'a -> bool
  val peek : 'a CCBlockingQueue.t -> 'a option
  val size : 'a CCBlockingQueue.t -> int
  val capacity : 'a CCBlockingQueue.t -> int
end