From 77544bdfad2af41514ec1435f706fee87ea2969e Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Mon, 7 Feb 2022 15:38:37 +0100 Subject: Added viz.js code --- viz.js/promise/promise.mli | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 viz.js/promise/promise.mli (limited to 'viz.js/promise/promise.mli') diff --git a/viz.js/promise/promise.mli b/viz.js/promise/promise.mli new file mode 100755 index 0000000..26831c4 --- /dev/null +++ b/viz.js/promise/promise.mli @@ -0,0 +1,56 @@ +type ('a, 'b) promise + +type 'a resolve = 'a -> unit + +type 'a reject = 'a -> unit + +val is_supported : unit -> bool + +val make : ('a resolve -> 'b reject -> unit) -> ('a, 'b) promise + +val resolve : 'a -> ('a, 'b) promise + +val reject : 'b -> ('a, 'b) promise + +val then_bind : + on_fulfilled:('a -> ('c ,'b) promise) -> + ?on_rejected:('b -> ('c, 'b) promise) -> + ('a, 'b) promise -> + ('c, 'b) promise + +val then_map : + on_fulfilled:('a -> 'c) -> + ?on_rejected:('b -> 'd) -> + ('a, 'b) promise -> + ('c, 'd) promise + +val catch_bind : + on_rejected:('b -> ('a, 'b) promise) -> + ('a, 'b) promise -> + ('a, 'b) promise + +val catch_map : + on_rejected:('b -> 'a) -> + ('a, 'b) promise -> + ('a, 'b) promise + +val then_final : + on_fulfilled:('a -> unit) -> + on_rejected:('b -> unit) -> + ('a, 'b) promise -> + unit + +val all : (('a, 'b) promise) array -> ('a array, 'b) promise + +val race : (('a, 'b) promise) array -> ('a, 'b) promise + +module Infix : sig + val (>>=) : ('a, 'b) promise -> ('a -> ('c ,'b) promise) -> ('c, 'b) promise + val (>|=) : ('a, 'b) promise -> ('a -> 'c) -> ('c, 'b) promise + + val (>>~) : ('a, 'b) promise -> ('b -> ('a, 'b) promise) -> ('a, 'b) promise + val (>|~) : ('a, 'b) promise -> ('b -> 'a) -> ('a, 'b) promise + + val (>||) : ('a, 'b) promise -> ('a -> unit) * ('b -> unit) -> unit +end + -- cgit v1.2.3