module Continuation (OP : OpVarADT.OpVarADT) = struct let arg x = fun y continuation -> continuation (OP.op x y) ;; let stop x = x;; let f g = g OP.init;; end