module Froc_ddg: sig
.. end
Dynamic dependency graph underlying Froc
and Froc_sa
.
type +'a
t
type -'a
u
exception Unset
type
cancel = unit -> unit
val make_cancel : (unit -> unit) -> cancel
val no_cancel : cancel
val cancel : cancel -> unit
type 'a
result =
| |
Value of 'a |
| |
Fail of exn |
val changeable : ?eq:('a -> 'a -> bool) -> 'a -> 'a t * 'a u
val return : 'a -> 'a t
val fail : exn -> 'a t
val is_constant : 'a t -> bool
val bind : ?eq:('a -> 'a -> bool) ->
'b t -> ('b -> 'a t) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val lift : ?eq:('a -> 'a -> bool) -> ('b -> 'a) -> 'b t -> 'a t
val blift : ?eq:('a -> 'a -> bool) -> 'b t -> ('b -> 'a) -> 'a t
val add_reader : ?now:bool -> 'a t -> (unit -> unit) -> unit
val add_reader_cancel : ?now:bool -> 'a t -> (unit -> unit) -> cancel
val catch : ?eq:('a -> 'a -> bool) ->
(unit -> 'a t) -> (exn -> 'a t) -> 'a t
val try_bind : ?eq:('a -> 'a -> bool) ->
(unit -> 'b t) ->
('b -> 'a t) -> (exn -> 'a t) -> 'a t
val catch_lift : ?eq:('a -> 'a -> bool) ->
(unit -> 'a t) -> (exn -> 'a) -> 'a t
val try_bind_lift : ?eq:('a -> 'a -> bool) ->
(unit -> 'b t) -> ('b -> 'a) -> (exn -> 'a) -> 'a t
val read : 'a t -> 'a
val read_result : 'a t -> 'a result
val write : 'a u -> 'a -> unit
val write_exn : 'a u -> exn -> unit
val write_result : 'a u -> 'a result -> unit
val clear : 'a u -> unit
val notify : ?now:bool -> 'a t -> ('a -> unit) -> unit
val notify_cancel : ?now:bool -> 'a t -> ('a -> unit) -> cancel
val notify_result : ?now:bool -> 'a t -> ('a result -> unit) -> unit
val notify_result_cancel : ?now:bool -> 'a t -> ('a result -> unit) -> cancel
val connect : 'a u -> 'a t -> unit
val connect_cancel : 'a u -> 'a t -> cancel
val cleanup : (unit -> unit) -> unit
val make_changeable : ?eq:('a -> 'a -> bool) ->
?result:'a result -> unit -> 'a t * 'a u
val make_constant : 'a result -> 'a t
val hash : 'a t -> int
val init : unit -> unit
val propagate : unit -> unit
val set_exn_handler : (exn -> unit) -> unit
val set_debug : (string -> unit) -> unit
val memo : ?size:int ->
?hash:('a -> int) -> ?eq:('a -> 'a -> bool) -> unit -> ('a -> 'b) -> 'a -> 'b
val bind2 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t -> ('b -> 'c -> 'a t) -> 'a t
val lift2 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'a) -> 'b t -> 'c t -> 'a t
val blift2 : ?eq:('a -> 'a -> bool) ->
'b t -> 'c t -> ('b -> 'c -> 'a) -> 'a t
val add_reader2 : ?now:bool -> 'a t -> 'b t -> (unit -> unit) -> unit
val bind3 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t -> ('b -> 'c -> 'd -> 'a t) -> 'a t
val lift3 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'a) ->
'b t -> 'c t -> 'd t -> 'a t
val blift3 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t -> 'd t -> ('b -> 'c -> 'd -> 'a) -> 'a t
val add_reader3 : ?now:bool ->
'a t -> 'b t -> 'c t -> (unit -> unit) -> unit
val bind4 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t -> ('b -> 'c -> 'd -> 'e -> 'a t) -> 'a t
val lift4 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'a) ->
'b t ->
'c t -> 'd t -> 'e t -> 'a t
val blift4 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t -> ('b -> 'c -> 'd -> 'e -> 'a) -> 'a t
val add_reader4 : ?now:bool ->
'a t ->
'b t -> 'c t -> 'd t -> (unit -> unit) -> unit
val bind5 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a t) -> 'a t
val lift5 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a) ->
'b t ->
'c t ->
'd t -> 'e t -> 'f t -> 'a t
val blift5 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t -> ('b -> 'c -> 'd -> 'e -> 'f -> 'a) -> 'a t
val add_reader5 : ?now:bool ->
'a t ->
'b t ->
'c t -> 'd t -> 'e t -> (unit -> unit) -> unit
val bind6 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t ->
'g t ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a t) -> 'a t
val lift6 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a) ->
'b t ->
'c t ->
'd t ->
'e t -> 'f t -> 'g t -> 'a t
val blift6 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t ->
'g t -> ('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a) -> 'a t
val add_reader6 : ?now:bool ->
'a t ->
'b t ->
'c t ->
'd t -> 'e t -> 'f t -> (unit -> unit) -> unit
val bind7 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t ->
'g t ->
'h t ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a t) -> 'a t
val lift7 : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t -> 'g t -> 'h t -> 'a t
val blift7 : ?eq:('a -> 'a -> bool) ->
'b t ->
'c t ->
'd t ->
'e t ->
'f t ->
'g t ->
'h t ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a) -> 'a t
val add_reader7 : ?now:bool ->
'a t ->
'b t ->
'c t ->
'd t ->
'e t -> 'f t -> 'g t -> (unit -> unit) -> unit
val bindN : ?eq:('a -> 'a -> bool) ->
'b t list -> ('b list -> 'a t) -> 'a t
val liftN : ?eq:('a -> 'a -> bool) ->
('b list -> 'a) -> 'b t list -> 'a t
val bliftN : ?eq:('a -> 'a -> bool) ->
'b t list -> ('b list -> 'a) -> 'a t
val add_readerN : ?now:bool -> 'a t list -> (unit -> unit) -> unit