aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Program.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/protocols/Program.mli')
-rw-r--r--lib/protocols/Program.mli23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/protocols/Program.mli b/lib/protocols/Program.mli
new file mode 100644
index 0000000..1d6c3ae
--- /dev/null
+++ b/lib/protocols/Program.mli
@@ -0,0 +1,23 @@
+module type PROGRAM = sig
+ type t
+end
+
+module Make (P : PROGRAM) : sig
+ type t
+
+ class type implementation = object
+ method invoke :
+ program:P.t ->
+ Context.t ->
+ (Handle.t, Concepts.Condition.condition) result
+ end
+
+ val make : #implementation -> Handle.protocol
+ val from : Handle.t -> t Handle.interface option
+
+ val invoke :
+ t Handle.interface ->
+ program:P.t ->
+ Context.t ->
+ (Handle.t, Concepts.Condition.condition) result
+end