123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532moduletypeF=sigtype'at(** The type of queues containing elements of type ['a]. *)exceptionEmpty(** Raised when {!peek_exn} or {!pop_exn} is applied to an empty queue. *)valempty:'at(** An empty queue. *)valis_empty:'at->bool(** Return [true] if the given queue is empty, [false] otherwise. *)vallength:'at->int(** Number of elements in the queue. *)valpush:'at->'a->'at(** Push element at the end of the queue. *)valcons:'at->'a->'at(** Push element at the front of the queue. *)valpeek:'at->'aoption(** [peek q] returns the first element in the queue [q], without removing it
from the queue. If [q] is empty, it returns [None]. *)valpeek_exn:'at->'a(** Same as {!peek} but it raises an exception if [q] is empty. *)valpop:'at->('a*'at)option(** Get and remove the first element. If [q] is empty, it returns [None]. *)valpop_exn:'at->'a*'at(** Same as {!pop} but it raises an exception if [q] is empty. *)valtail:'at->('at*'a)option(** Get and remove the {b last} element. If [q] is empty, it returns [None]. *)valtail_exn:'at->'at*'a(** Same as {!tail} but it raises an exception if [q] is empty. *)valiter:('a->unit)->'at->unit(** [iter f q] applies [f] in turn to all elements of [q], from the least
recently entered to the most recently entered. The queue itself is
unchanged. *)valrev_iter:('a->unit)->'at->unit(** [rev_iter f q] applies [f] in turn to all elements of [q], from the most
recently entered to the least recently entered. The queue itself is
unchanged. *)valfold:('acc->'x->'acc)->'acc->'xt->'acc(** [fold f a q] is equivalent to [List.fold_left f a l], where [l] is the
list of [q]'s elements. The queue remains unchanged. *)valpp:?sep:unitFmt.t->'aFmt.t->'atFmt.t(** Pretty-printer of {!t}. *)valdump:'aFmt.t->'atFmt.t(** Human-readable pretty-printer of {!t}. *)endmoduletypeR=sigtype('a,'b)t(** The type of queues containing elements of type ['a]. *)exceptionEmpty(** Raised when {!peek_exn}, {!pop_exn}, {!N.keep_exn} or {!N.shift_exn} is
applied to an empty queue. *)valis_empty:('a,'b)t->bool(** Return [true] if the given queue is empty, [false] otherwise. *)valcreate:?capacity:int->('a,'b)Bigarray.kind->('a,'b)t(** Return a new queue, initially empty. *)valcapacity:('a,'b)t->int(** Returns how many objects [t] can store. *)vallength:('a,'b)t->int(** Number of elements in the queue. *)valpush:('a,'b)t->'a->unit(** [push q x] adds the elements [x] at the end of the queue [q]. *)valpop:('a,'b)t->'aoption(** [pop q] removes and returns the first element in queue [q]. If [q] is
empty, it returns [None]. *)valpop_exn:('a,'b)t->'a(** [pop_exn] is the same as {!pop} but it raises {!Empty} when the given
queue [q] is empty. *)valpeek:('a,'b)t->'aoption(** [peek q] returns the first element in the queue [q], without removing it
from the queue. If [q] is empty, it returns [None]. *)valpeek_exn:('a,'b)t->'a(** Same as {!peek} but it raises {!Empty} if [q] is empty. *)valcons:('a,'b)t->'a->unit(** [cons q x] adds element [x] at the front of the given queue [q]. It
returns [None] if it fails. *)valcopy:('a,'b)t->('a,'b)t(** Return a copy of the given queue. *)valclear:('a,'b)t->unit(** Discard all elements from a queue. *)valcompress:('a,'b)t->unit(** Compress queue, read cursor will be setted to [0] and data will be move
to. This operation allows to provide much more space for a
{!push}/{!N.push} operation - but it can not ensure enough free space. *)moduleN:sigtype('a,'b)bigarray=('a,'b,Bigarray.c_layout)Bigarray.Array1.t(** The type of the internal bigarray of {!t}. *)type('a,'b)blit='a->int->'b->int->int->unit(** The type of the [blit] function. *)type'alength='a->int(** The type of the [length] function. *)valpush:('a,'b)t->blit:('src,('a,'b)bigarray)blit->length:'srclength->?off:int->?len:int->'src->unit(** [push q ~blit ~length ?off ?len src] {i blits} elements in [src] to the
given queue [q] at the end (like a fast iterative {!R.push}). Default
value of [off] is [0]. Default value of [len] is [length src - off]. *)valkeep_exn:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unit(** [keep_exn q ~blit ~length ?off ?len dst] {i blits} elements of the given
queue [q] in [dst] from the front to the end of [dst] (like a fast
iterative {!R.pop_exn}). Default value of [off] is [0]. Default value of
[len] is [length dst - off]. If the given [q] does not have enough
elements to write on [dst], it raises {!Empty} and the given queue is
unchanged. *)valkeep:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unitoption(** Same as {!keep_exn} but if it fails, it returns [None]. *)valpeek:('a,'b)t->('a,'b,Bigarray.c_layout)Bigarray.Array1.tlist(** Returns a sub-part of available to read payloads. *)valunsafe_shift:('a,'b)t->int->unit(** [unsafe_shift q l] discards [l] elements in the given queue [q] without
any verification. Mostly used after {!keep_exn}, if the last one does not
raise {!Empty}, it's safe to use it. *)valshift_exn:('a,'b)t->int->unit(** [shift_exn q l] discards [l] elements in the given queue [q]. If [q]
does not have enough elements, it raises {!Empty} and the given queue is
unchanged. *)valshift:('a,'b)t->int->unitoption(** Same as {!shift_exn} but if it fails, it returns [None]. *)endvaliter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the least
recently entered to the most recently entered. The queue itself is
unchanged. *)valrev_iter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the most
recently entered to the least recently entered. The queue itself is
unchanged. *)valfold:('acc->'x->'acc)->'acc->('x,'b)t->'acc(** [fold f a q] is equivalent to [List.fold_left f a l], where [l] is the
list of [q]'s elements. The queue remains unchanged. *)valpp:?sep:unitFmt.t->'aFmt.t->('a,'b)tFmt.t(** Pretty-printer of {!t}. *)valdump:'aFmt.t->('a,'b)tFmt.t(** Human-readable pretty-printer of {!t}. *)endmoduleWeighted=structmoduletypeR=sigtype('a,'b)t(** The type of queues containing elements of type ['a]. *)exceptionFull(** Raised when {!push_exn} or {!N.push_exn} is applied to an empty queue. *)exceptionEmpty(** Raised when {!peek_exn}, {!pop_exn} is applied to an empty queue. *)valis_empty:('a,'b)t->bool(** Return [true] if the given queue is empty, [false] otherwise. *)valcreate:?capacity:int->('a,'b)Bigarray.kind->('a,'b)t*int(** Return a new queue, initially empty with the real capacity of it. *)vallength:('a,'b)t->int(** Number of elements in the queue. *)valavailable:('a,'b)t->int(** Free cells availables on the queue. *)valpush_exn:('a,'b)t->'a->unit(** [push_exn q x] adds the elements [x] at the end of the queue [q]. It
raises {!Full} if the given queue [q] is full. *)valpush:('a,'b)t->'a->unitoption(** [push q x] is the same as {!push_exn} but returns [None] if it fails. *)valpop:('a,'b)t->'aoption(** [pop q] removes and returns the first element in the given queue [q]. If
[q] is empty, it returns [None]. *)valpop_exn:('a,'b)t->'a(** [pop_exn q] is the same as {!pop} but it raises an {!Empty} if the given
queue is empty. *)valpeek:('a,'b)t->'aoption(** [peek q] returns the first element in the given queue [q]. If [q] is
empty, it returns [None]. *)valpeek_exn:('a,'b)t->'a(** [peek_exn q] returns the first element in the given queue [q]. If [q] is
empty, it raises {!Empty}. *)valcons_exn:('a,'b)t->'a->unit(** [cons_exn q x] adds element [x] at the front of the given queue [q]. It
raises {!Full} if the queue is full. *)valcons:('a,'b)t->'a->unitoption(** [cons q x] adds element [x] at the front of the given queue [q]. It
returns [None] if it fails. *)valcopy:('a,'b)t->('a,'b)t(** Return a copy of the given queue. *)valclear:('a,'b)t->unit(** Discard all elements from a queue. *)valcompress:('a,'b)t->unit(** Compress queue, read cursor will be setted to [0] and data will be move
to. This operation allows to provide much more space for a
{!push}/{!N.push} operation - but it can not ensure enough free space. *)moduleN:sigtype('a,'b)bigarray=('a,'b,Bigarray.c_layout)Bigarray.Array1.t(** The type of the internal bigarray of {!t}. *)type('a,'b)blit='a->int->'b->int->int->unit(** The type of the [blit] function. *)type'alength='a->int(** The type of the [length] function. *)valpush_exn:('a,'b)t->blit:('src,('a,'b)bigarray)blit->length:'srclength->?off:int->?len:int->'src->('a,'b)bigarraylist(** [push_exn q ~blit ~length ?off ?len src] {i blits} elements in [src]
to the given queue [q] at the end (like a fast iterative {!R.push}).
Default value of [off] is [0]. Default value of [len] is [length src - off].
It returns a list of internal {!bigarray}s which contain [dst].
If the given [q] does not have enough free space to write [src], it
raises {!Full} and the given queue is unchanged. *)valpush:('a,'b)t->blit:('src,('a,'b)bigarray)blit->length:'srclength->?off:int->?len:int->'src->('a,'b)bigarraylistoption(** Same as {!push_exn} but it returns [None] if it fails. *)valkeep_exn:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unit(** [keep_exn q ~blit ~length ?off ?len dst] {i blits} elements of the
given queue [q] in [dst] from the front to the end of [dst] (like a
fast iterative {!R.pop_exn}). Default value of [off] is [0]. Default
value of [len] is [length dst - off]. If the given [q] does not have
enough elements to write on [dst], it raises {!Empty}. In any case, the
given queue is unchanged. *)valkeep:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unitoption(** Same as {!keep_exn} but if it fails, it returns [None]. *)valpeek:('a,'b)t->('a,'b,Bigarray.c_layout)Bigarray.Array1.tlist(** Returns a sub-part of available to read payloads. *)valunsafe_shift:('a,'b)t->int->unit(** [unsafe_shift q l] discards [l] elements in the given queue [q]
without any verification. Mostly used after {!keep_exn}, if the last
one does not raise {!Empty}, it's safe to use it. *)valshift_exn:('a,'b)t->int->unit(** [shift_exn q l] discards [l] elements in the given queue [q]. If [q]
does not have enough elements, it raises {!Empty} and the given queue
is unchanged. *)valshift:('a,'b)t->int->unitoption(** Same as {!shift_exn} but if it fails, it returns [None]. *)endvaliter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the least
recently entered to the most recently entered. The queue itself is
unchanged. *)valrev_iter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the most
recently entered to the least recently entered. The queue itself is
unchanged. *)valfold:('acc->'x->'acc)->'acc->('x,'b)t->'acc(** [fold f a q] is equivalent to [List.fold_left f a l], where [l] is the
list of [q]'s elements. The queue remains unchanged. *)valpp:?sep:unitFmt.t->'aFmt.t->('a,'b)tFmt.t(** Pretty-printer of {!t}. *)valdump:'aFmt.t->('a,'b)tFmt.t(** Human-readable pretty-printer of {!t}. *)valunsafe_bigarray:('a,'b)t->('a,'b,Bigarray.c_layout)Bigarray.Array1.t(** / **)valfrom:('a,'b,Bigarray.c_layout)Bigarray.Array1.t->('a,'b)tendmoduletypeF=sigtype('a,'b)t(** The type of queues containing elements of type ['a]. *)exceptionEmpty(** Raised when {!push_exn} or {!N.push_exn} is applied to an empty queue. *)exceptionFull(** Raised when {!peek_exn}, {!pop_exn} is applied to an empty queue. *)valis_empty:('a,'b)t->bool(** Return [true] if the given queue is empty, [false] otherwise. *)valcreate:?capacity:int->('a,'b)Bigarray.kind->('a,'b)t*int(** Return a new queue, initially empty with the real capacity of it. *)vallength:('a,'b)t->int(** Number of elements in the queue. *)valavailable:('a,'b)t->int(** Free cells availables on the queue. *)valpush_exn:('a,'b)t->'a->('a,'b)t(** [push_exn q x] adds the elements [x] at the end of the queue [q] and
returns the new queue [q']. It raises {!Full} if the given queue [q] is
full. *)valpush:('a,'b)t->'a->('a,'b)toption(** [push q x] is the same as {!push_exn} but returns [None] if it fails. *)valpop:('a,'b)t->('a*('a,'b)t)option(** [pop q] removes and returns the first element in the given queue [q] and
returns the new queue [q']. If [q] is empty, it returns [None]. *)valpop_exn:('a,'b)t->'a*('a,'b)t(** [pop_exn q] is the same as {!pop} but it raises an {!Empty} if the given
queue is empty. *)valpeek:('a,'b)t->'aoption(** [peek q] returns the first element in the given queue [q]. If [q] is
empty, it returns [None]. The given queue [q] is unchanged. *)valpeek_exn:('a,'b)t->'a(** [peek_exn q] returns the first element in the given queue [q]. If [q] is
empty, it raises {!Empty}. *)valcons:('a,'b)t->'a->('a,'b)toption(** [cons q x] adds element [x] at the front of the given queue [q]. It
returns [None] if it fails or the new queue [q']. *)valcons_exn:('a,'b)t->'a->('a,'b)t(** [cons q x] adds element [x] at the front of the given queue [q]. It
raises {!Empty} if the given queue [q] is full or the new queue [q']. *)valcopy:('a,'b)t->('a,'b)t(** Return a copy of the given queue. *)valclear:('a,'b)t->('a,'b)t(** Discard all elements from a queue. *)moduleN:sigtype('a,'b)bigarray=('a,'b,Bigarray.c_layout)Bigarray.Array1.t(** The type of the internal bigarray of {!t}. *)type('a,'b)blit='a->int->'b->int->int->unit(** The type of the [blit] function. *)type'alength='a->int(** The type of the [length] function. *)valpush_exn:('a,'b)t->blit:('src,('a,'b)bigarray)blit->length:'srclength->?off:int->?len:int->'src->('a,'b)bigarraylist*('a,'b)t(** [push_exn q ~blit ~length ?off ?len src] {i blits} elements in [src]
to the given queue [q] at the end (like a fast iterative {!R.push}).
Default value of [off] is [0]. Default value of [len] is [length src - off].
It returns a list of internal {!bigarray}s which contain [dst].
If the given [q] does not have enough free space to write [src], it
raises {!Full} and the given queue is unchanged. *)valpush:('a,'b)t->blit:('src,('a,'b)bigarray)blit->length:'srclength->?off:int->?len:int->'src->(('a,'b)bigarraylist*('a,'b)t)option(** Same as {!push_exn} but it returns [None] if it fails. *)valkeep_exn:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unit(** [keep_exn q ~blit ~length ?off ?len dst] {i blits} elements of the
given queue [q] in [dst] from the front to the end of [dst] (like a
fast iterative {!R.pop_exn}). Default value of [off] is [0]. Default
value of [len] is [length dst - off]. If the given [q] does not have
enough elements to write on [dst], it raises {!Empty}. In any case, the
given queue is unchanged. *)valkeep:('a,'b)t->blit:(('a,'b)bigarray,'dst)blit->length:'dstlength->?off:int->?len:int->'dst->unitoption(** Same as {!keep_exn} but if it fails, it returns [None]. *)valunsafe_shift:('a,'b)t->int->('a,'b)t(** [unsafe_shift q l] discards [l] elements in the given queue [q]
without any verification. Mostly used after {!keep_exn}, if the last
one does not raise {!Empty}, it's safe to use it. *)valshift_exn:('a,'b)t->int->('a,'b)t(** [shift_exn q l] discards [l] elements in the given queue [q]. If [q]
does not have enough elements, it raises {!Empty} and the given queue
is unchanged. *)valshift:('a,'b)t->int->('a,'b)toption(** Same as {!shift_exn} but if it fails, it returns [None]. *)endvaliter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the least
recently entered to the most recently entered. The queue itself is
unchanged. *)valrev_iter:('a->unit)->('a,'b)t->unit(** [iter f q] applies [f] in turn to all elements of [q], from the most
recently entered to the least recently entered. The queue itself is
unchanged. *)valfold:('acc->'x->'acc)->'acc->('x,'b)t->'acc(** [fold f a q] is equivalent to [List.fold_left f a l], where [l] is the
list of [q]'s elements. The queue remains unchanged. *)valpp:?sep:unitFmt.t->'aFmt.t->('a,'b)tFmt.t(** Pretty-printer of {!t}. *)valdump:'aFmt.t->('a,'b)tFmt.t(** Human-readable pretty-printer of {!t}. *)(** / **)valunsafe_bigarray:('a,'b)t->('a,'b,Bigarray.c_layout)Bigarray.Array1.tvalfrom:('a,'b,Bigarray.c_layout)Bigarray.Array1.t->('a,'b)tendend