diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-09-03 16:55:45 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-03 16:55:45 -0300 |
| commit | 441f2f3359d6f59e4f26f1d5751926d26b1c7cf9 (patch) | |
| tree | bfe2c858da6bd010ea656b6c9045af96ff7e4946 /lib/protocols/Relation.ml | |
| parent | 836e1ab528379ac5e0e9151cf369628dcf1034a3 (diff) | |
| download | RNT-441f2f3359d6f59e4f26f1d5751926d26b1c7cf9.tar.gz RNT-441f2f3359d6f59e4f26f1d5751926d26b1c7cf9.zip | |
Substantial relation kernel object
Diffstat (limited to 'lib/protocols/Relation.ml')
| -rw-r--r-- | lib/protocols/Relation.ml | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/protocols/Relation.ml b/lib/protocols/Relation.ml new file mode 100644 index 0000000..ece9b8e --- /dev/null +++ b/lib/protocols/Relation.ml @@ -0,0 +1,18 @@ +class type implementation = object + method heading : (Concepts.Hash.hash, Concepts.Condition.condition) result + method predicate : (Concepts.Hash.hash option, Concepts.Condition.condition) result + method local_constraints : (Concepts.Hash.hash option, Concepts.Condition.condition) result + method tuples : (Concepts.Hash.hash, Concepts.Condition.condition) result + method contains : Concepts.Blob.t -> (bool, Concepts.Condition.condition) result +end + +type Handle.protocol += Relation of implementation +type t = implementation + +let make impl = Relation (impl :> implementation) +let from handle = Handle.into handle (function Relation impl -> Some impl | _ -> None) +let heading i = Handle.invoke i (fun o -> o#heading) +let predicate i = Handle.invoke i (fun o -> o#predicate) +let local_constraints i = Handle.invoke i (fun o -> o#local_constraints) +let tuples i = Handle.invoke i (fun o -> o#tuples) +let contains i tuple = Handle.invoke i (fun o -> o#contains tuple) |
