sig
type 'a result = Value of 'a | Fail of exn
type cancel
type +'a behavior
val return : 'a -> 'a Froc.behavior
val fail : exn -> 'a Froc.behavior
val bind :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior -> ('b -> 'a Froc.behavior) -> 'a Froc.behavior
val ( >>= ) :
'a Froc.behavior -> ('a -> 'b Froc.behavior) -> 'b Froc.behavior
val blift :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior -> ('b -> 'a) -> 'a Froc.behavior
val lift :
?eq:('a -> 'a -> bool) ->
('b -> 'a) -> 'b Froc.behavior -> 'a Froc.behavior
val sample : 'a Froc.behavior -> 'a
val sample_result : 'a Froc.behavior -> 'a Froc.result
val catch :
?eq:('a -> 'a -> bool) ->
(unit -> 'a Froc.behavior) ->
(exn -> 'a Froc.behavior) -> 'a Froc.behavior
val catch_lift :
?eq:('a -> 'a -> bool) ->
(unit -> 'a Froc.behavior) -> (exn -> 'a) -> 'a Froc.behavior
val try_bind :
?eq:('a -> 'a -> bool) ->
(unit -> 'b Froc.behavior) ->
('b -> 'a Froc.behavior) -> (exn -> 'a Froc.behavior) -> 'a Froc.behavior
val try_bind_lift :
?eq:('a -> 'a -> bool) ->
(unit -> 'b Froc.behavior) ->
('b -> 'a) -> (exn -> 'a) -> 'a Froc.behavior
val join_b :
?eq:('a -> 'a -> bool) ->
'a Froc.behavior Froc.behavior -> 'a Froc.behavior
val fix_b :
?eq:('a -> 'a -> bool) ->
('a Froc.behavior -> 'a Froc.behavior) -> 'a Froc.behavior
val notify_b : ?now:bool -> 'a Froc.behavior -> ('a -> unit) -> unit
val notify_b_cancel :
?now:bool -> 'a Froc.behavior -> ('a -> unit) -> Froc.cancel
val notify_result_b :
?now:bool -> 'a Froc.behavior -> ('a Froc.result -> unit) -> unit
val notify_result_b_cancel :
?now:bool -> 'a Froc.behavior -> ('a Froc.result -> unit) -> Froc.cancel
val hash_behavior : 'a Froc.behavior -> int
type +'a event
type -'a event_sender
val make_event : unit -> 'a Froc.event * 'a Froc.event_sender
val never : 'a Froc.event
val notify_e : 'a Froc.event -> ('a -> unit) -> unit
val notify_e_cancel : 'a Froc.event -> ('a -> unit) -> Froc.cancel
val notify_result_e : 'a Froc.event -> ('a Froc.result -> unit) -> unit
val notify_result_e_cancel :
'a Froc.event -> ('a Froc.result -> unit) -> Froc.cancel
val send : 'a Froc.event_sender -> 'a -> unit
val send_exn : 'a Froc.event_sender -> exn -> unit
val send_result : 'a Froc.event_sender -> 'a Froc.result -> unit
val send_deferred : 'a Froc.event_sender -> 'a -> unit
val send_exn_deferred : 'a Froc.event_sender -> exn -> unit
val send_result_deferred : 'a Froc.event_sender -> 'a Froc.result -> unit
val next : 'a Froc.event -> 'a Froc.event
val merge : 'a Froc.event list -> 'a Froc.event
val map : ('a -> 'b) -> 'a Froc.event -> 'b Froc.event
val map2 :
('a -> 'b -> 'c) -> 'a Froc.event -> 'b Froc.event -> 'c Froc.event
val filter : ('a -> bool) -> 'a Froc.event -> 'a Froc.event
val collect : ('a -> 'b -> 'a) -> 'a -> 'b Froc.event -> 'a Froc.event
val join_e : 'a Froc.event Froc.event -> 'a Froc.event
val fix_e : ('a Froc.event -> 'a Froc.event) -> 'a Froc.event
val hash_event : 'a Froc.event -> int
val switch :
?eq:('a -> 'a -> bool) ->
'a Froc.behavior -> 'a Froc.behavior Froc.event -> 'a Froc.behavior
val until :
?eq:('a -> 'a -> bool) ->
'a Froc.behavior -> 'a Froc.behavior Froc.event -> 'a Froc.behavior
val hold :
?eq:('a -> 'a -> bool) -> 'a -> 'a Froc.event -> 'a Froc.behavior
val hold_result :
?eq:('a -> 'a -> bool) ->
'a Froc.result -> 'a Froc.event -> 'a Froc.behavior
val changes : 'a Froc.behavior -> 'a Froc.event
val when_true : bool Froc.behavior -> unit Froc.event
val count : 'a Froc.event -> int Froc.behavior
val make_cell : 'a -> 'a Froc.behavior * ('a -> unit)
val init : unit -> unit
val no_cancel : Froc.cancel
val cancel : Froc.cancel -> unit
val cleanup : (unit -> unit) -> unit
val memo :
?size:int ->
?hash:('a -> int) ->
?eq:('a -> 'a -> bool) -> unit -> ('a -> 'b) -> 'a -> 'b
val set_exn_handler : (exn -> unit) -> unit
val set_debug : (string -> unit) -> unit
val bind2 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior -> ('b -> 'c -> 'a Froc.behavior) -> 'a Froc.behavior
val blift2 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior -> ('b -> 'c -> 'a) -> 'a Froc.behavior
val lift2 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'a) ->
'b Froc.behavior -> 'c Froc.behavior -> 'a Froc.behavior
val bind3 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
('b -> 'c -> 'd -> 'a Froc.behavior) -> 'a Froc.behavior
val blift3 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior -> ('b -> 'c -> 'd -> 'a) -> 'a Froc.behavior
val lift3 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'a) ->
'b Froc.behavior ->
'c Froc.behavior -> 'd Froc.behavior -> 'a Froc.behavior
val bind4 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'a Froc.behavior) -> 'a Froc.behavior
val blift4 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior -> ('b -> 'c -> 'd -> 'e -> 'a) -> 'a Froc.behavior
val lift4 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'a) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior -> 'e Froc.behavior -> 'a Froc.behavior
val bind5 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a Froc.behavior) -> 'a Froc.behavior
val blift5 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a) -> 'a Froc.behavior
val lift5 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior -> 'f Froc.behavior -> 'a Froc.behavior
val bind6 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
'g Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a Froc.behavior) ->
'a Froc.behavior
val blift6 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
'g Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a) -> 'a Froc.behavior
val lift6 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior -> 'g Froc.behavior -> 'a Froc.behavior
val bind7 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
'g Froc.behavior ->
'h Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a Froc.behavior) ->
'a Froc.behavior
val blift7 :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
'g Froc.behavior ->
'h Froc.behavior ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a) -> 'a Froc.behavior
val lift7 :
?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'a) ->
'b Froc.behavior ->
'c Froc.behavior ->
'd Froc.behavior ->
'e Froc.behavior ->
'f Froc.behavior ->
'g Froc.behavior -> 'h Froc.behavior -> 'a Froc.behavior
val bindN :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior list ->
('b list -> 'a Froc.behavior) -> 'a Froc.behavior
val bliftN :
?eq:('a -> 'a -> bool) ->
'b Froc.behavior list -> ('b list -> 'a) -> 'a Froc.behavior
val liftN :
?eq:('a -> 'a -> bool) ->
('b list -> 'a) -> 'b Froc.behavior list -> 'a Froc.behavior
end