functor (R : Reagents.S) ->
sig
module Counter :
sig
type t
type ('a, 'b) reagent = ('a, 'b) R.t
val create : int -> t
val get : t -> (unit, int) reagent
val inc : t -> (unit, int) reagent
val dec : t -> (unit, int) reagent
val try_dec : t -> (unit, int option) reagent
end
module Treiber_stack :
sig
type 'a t
type ('a, 'b) reagent = ('a, 'b) R.t
val create : unit -> 'a t
val push : 'a t -> ('a, unit) reagent
val pop : 'a t -> (unit, 'a) reagent
val try_pop : 'a t -> (unit, 'a option) reagent
end
module Elimination_stack :
sig
type 'a t
type ('a, 'b) reagent = ('a, 'b) R.t
val create : unit -> 'a t
val push : 'a t -> ('a, unit) reagent
val pop : 'a t -> (unit, 'a) reagent
val try_pop : 'a t -> (unit, 'a option) reagent
end
module MichaelScott_queue :
sig
type 'a t
type ('a, 'b) reagent = ('a, 'b) R.t
val create : unit -> 'a t
val push : 'a t -> ('a, unit) reagent
val pop : 'a t -> (unit, 'a) reagent
val try_pop : 'a t -> (unit, 'a option) reagent
end
end