module CCBlockingQueue:sig..end
    This queue has a limited size. Pushing a value on the queue when it
    is full will block.
Since 0.16
type 'a t 
'aval create : int -> 'a tn. Using n=max_int amounts to using
    an infinite queue (2^61 items is a lot to fit in memory); using n=1
    amounts to using a box with 0 or 1 elements inside.Invalid_argument if n < 1val push : 'a t -> 'a -> unitpush q x pushes x into q, blocking if the queue is fullval take : 'a t -> 'aval push_list : 'a t -> 'a list -> unitval take_list : 'a t -> int -> 'a listtake_list n q takes n elements out of qval try_take : 'a t -> 'a optionNone
    otherwiseval try_push : 'a t -> 'a -> booltry_push q x pushes x into q if q is not full, in which
    case it returns true.
    If it fails because q is full, it returns falseval peek : 'a t -> 'a optionpeek q returns Some x if x is the first element of q,
    otherwise it returns Noneval size : 'a t -> intval capacity : 'a t -> int