sig
module type DISPOSABLE =
sig
type t
val equal : Disposal.DISPOSABLE.t -> Disposal.DISPOSABLE.t -> bool
val hash : Disposal.DISPOSABLE.t -> int
val default : Disposal.DISPOSABLE.t -> unit
end
module type DISPOSAL =
sig
type data
val register :
(Disposal.DISPOSAL.data -> unit) ->
Disposal.DISPOSAL.data -> Disposal.DISPOSAL.data
val manage :
?disposer:(Disposal.DISPOSAL.data -> unit) ->
Disposal.DISPOSAL.data -> Disposal.DISPOSAL.data
val dispose : Disposal.DISPOSAL.data -> unit
end
module Make :
functor (D : DISPOSABLE) ->
sig
type data = D.t
val register : (data -> unit) -> data -> data
val manage : ?disposer:(data -> unit) -> data -> data
val dispose : data -> unit
end
end