summaryrefslogtreecommitdiff
path: root/src/Cps.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cps.ml')
-rw-r--r--src/Cps.ml14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Cps.ml b/src/Cps.ml
index fec9d946..a09e1ef9 100644
--- a/src/Cps.ml
+++ b/src/Cps.ml
@@ -142,3 +142,17 @@ let () =
let cc = comp_transmit return3 do_nothing in
let cc = cc consume3 in
cc ()
+
+let comp_check_value (f : ('v -> 'ctx -> 'a) -> 'ctx -> 'b)
+ (g : 'v -> 'ctx -> unit) : ('v -> 'ctx -> 'a) -> 'ctx -> 'b =
+ fun cf ->
+ f (fun v ctx ->
+ g v ctx;
+ cf v ctx)
+
+let comp_check_ctx (f : ('ctx -> 'a) -> 'ctx -> 'b) (g : 'ctx -> unit) :
+ ('ctx -> 'a) -> 'ctx -> 'b =
+ fun cf ->
+ f (fun ctx ->
+ g ctx;
+ cf ctx)