aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-09-26 13:22:10 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-09-26 13:22:10 -0300
commit504e2d03a10f1641b36a9d5f127a18bc943562ce (patch)
tree3cff1b25540fd01c2c583f47e3bf90363543b0b2 /lib/protocols
parent8ff6bd42c0708b35f3026633e99f109de1bec89e (diff)
downloadRNT-504e2d03a10f1641b36a9d5f127a18bc943562ce.tar.gz
RNT-504e2d03a10f1641b36a9d5f127a18bc943562ce.zip
ephemeral relations as outputs of FOL and program overhaul
Diffstat (limited to 'lib/protocols')
-rw-r--r--lib/protocols/Evaluator.ml11
-rw-r--r--lib/protocols/Evaluator.mli10
-rw-r--r--lib/protocols/Program.ml16
-rw-r--r--lib/protocols/Program.mli15
-rw-r--r--lib/protocols/Relation.ml4
-rw-r--r--lib/protocols/Relation.mli9
6 files changed, 21 insertions, 44 deletions
diff --git a/lib/protocols/Evaluator.ml b/lib/protocols/Evaluator.ml
new file mode 100644
index 0000000..789fb9d
--- /dev/null
+++ b/lib/protocols/Evaluator.ml
@@ -0,0 +1,11 @@
+class type implementation = object
+ method invoke : Handle.t -> (Handle.t, Concepts.Condition.condition) result
+end
+
+type Handle.protocol += Evaluator of implementation
+type t = implementation
+
+let make impl = Evaluator (impl :> implementation)
+let from handle = Handle.into handle (function Evaluator impl -> Some impl | _ -> None)
+let require = Handle.require from
+let invoke i program = Handle.invoke i (fun o -> o#invoke program)
diff --git a/lib/protocols/Evaluator.mli b/lib/protocols/Evaluator.mli
new file mode 100644
index 0000000..3d42b5c
--- /dev/null
+++ b/lib/protocols/Evaluator.mli
@@ -0,0 +1,10 @@
+type t
+
+class type implementation = object
+ method invoke : Handle.t -> (Handle.t, Concepts.Condition.condition) result
+end
+
+val make : #implementation -> Handle.protocol
+val from : Handle.t -> t Handle.interface option
+val require : Handle.t -> (t Handle.interface, Concepts.Condition.condition) result
+val invoke : t Handle.interface -> Handle.t -> (Handle.t, Concepts.Condition.condition) result
diff --git a/lib/protocols/Program.ml b/lib/protocols/Program.ml
deleted file mode 100644
index e50f07d..0000000
--- a/lib/protocols/Program.ml
+++ /dev/null
@@ -1,16 +0,0 @@
-module type PROGRAM = sig
- type t
-end
-
-module Make (P : PROGRAM) = struct
- class type implementation = object
- method invoke : P.t -> (Handle.t, Concepts.Condition.condition) result
- end
-
- type Handle.protocol += Program of implementation
- type t = implementation
-
- let make impl = Program (impl :> implementation)
- let from handle = Handle.into handle (function Program impl -> Some impl | _ -> None)
- let invoke i program = Handle.invoke i (fun o -> o#invoke program)
-end
diff --git a/lib/protocols/Program.mli b/lib/protocols/Program.mli
deleted file mode 100644
index 6cdffd8..0000000
--- a/lib/protocols/Program.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-module type PROGRAM = sig
- type t
-end
-
-module Make (P : PROGRAM) : sig
- type t
-
- class type implementation = object
- method invoke : P.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 -> P.t -> (Handle.t, Concepts.Condition.condition) result
-end
diff --git a/lib/protocols/Relation.ml b/lib/protocols/Relation.ml
index c05337f..3962c9c 100644
--- a/lib/protocols/Relation.ml
+++ b/lib/protocols/Relation.ml
@@ -7,8 +7,6 @@ module Error = struct
end
class type implementation = object
- method predicate : (Concepts.Hash.hash option, Concepts.Condition.condition) result
- method local_constraints : (Concepts.Hash.hash option, Concepts.Condition.condition) result
method contains : Concepts.Tuple.t -> (bool, Concepts.Condition.condition) result
end
@@ -18,6 +16,4 @@ type t = implementation
let make impl = Relation (impl :> implementation)
let from handle = Handle.into handle (function Relation impl -> Some impl | _ -> None)
let require handle = from handle |> Option.to_result ~none:(Error.not_a_relation ())
-let predicate i = Handle.invoke i (fun o -> o#predicate)
-let local_constraints i = Handle.invoke i (fun o -> o#local_constraints)
let contains i tuple = Handle.invoke i (fun o -> o#contains tuple)
diff --git a/lib/protocols/Relation.mli b/lib/protocols/Relation.mli
index b4a11ec..be11cc1 100644
--- a/lib/protocols/Relation.mli
+++ b/lib/protocols/Relation.mli
@@ -1,19 +1,10 @@
type t
class type implementation = object
- method predicate : (Concepts.Hash.hash option, Concepts.Condition.condition) result
- method local_constraints : (Concepts.Hash.hash option, Concepts.Condition.condition) result
method contains : Concepts.Tuple.t -> (bool, Concepts.Condition.condition) result
end
val make : #implementation -> Handle.protocol
val from : Handle.t -> t Handle.interface option
val require : Handle.t -> (t Handle.interface, Concepts.Condition.condition) result
-
-val predicate :
- t Handle.interface -> (Concepts.Hash.hash option, Concepts.Condition.condition) result
-
-val local_constraints :
- t Handle.interface -> (Concepts.Hash.hash option, Concepts.Condition.condition) result
-
val contains : t Handle.interface -> Concepts.Tuple.t -> (bool, Concepts.Condition.condition) result