functor (P : sig type t end) ->
sig
type param = P.t
type result = unit
val extend : (param -> result) -> unit
val extend_once : (param -> result) -> unit
val apply : param -> result
val is_empty : unit -> bool
val clear : unit -> unit
val length : unit -> int
end