aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/Schema.mli
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-10-08 00:59:05 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-10-08 00:59:05 -0300
commitf49890e12d7eb6a766b966438cd475f7cbf5081b (patch)
treedc0b3e09181f9aa091a10ef7eaed86670c570d70 /lib/kernel/Schema.mli
parent8f5a9291647d53dd3a912853f5c230cdcb13cb74 (diff)
downloadRNT-f49890e12d7eb6a766b966438cd475f7cbf5081b.tar.gz
RNT-f49890e12d7eb6a766b966438cd475f7cbf5081b.zip
rework evaluators and add schema scope
Diffstat (limited to 'lib/kernel/Schema.mli')
-rw-r--r--lib/kernel/Schema.mli23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/kernel/Schema.mli b/lib/kernel/Schema.mli
new file mode 100644
index 0000000..7970ee2
--- /dev/null
+++ b/lib/kernel/Schema.mli
@@ -0,0 +1,23 @@
+(** A schema: its relations, \schema\[s]\relation\[r]. For now only a
+ namespace for them. *)
+module Make (S : Abstract.Storage.STORAGE) : sig
+ include Merkle.VALUE
+
+ val load :
+ ?bind:EphemeralRelation.binding ->
+ S.connection ->
+ t ->
+ (Protocols.Handle.t, Concepts.Condition.condition) result
+
+ (** a schema handed over with no address, as a directory holding its
+ relations under \relation, to store once the write has begun. A
+ relation with no address is stored as a program if it is one, and
+ as the tuples it holds if not. *)
+ val admit :
+ string ->
+ Protocols.Handle.t ->
+ (S.transaction Prototype.Associative.admission, Concepts.Condition.condition) result
+
+ (** an empty one, stored. *)
+ val make : S.connection -> (Protocols.Handle.t, Concepts.Condition.condition) result
+end