flix

0.67.2

Fixpoint3.Ast.ExecutableRam

Type Aliases

type alias ConstWrites = Vector[(Int32, Int32, Int64)] Source

ConstWrites describes constants used for queries and the position they should be written to. Explicitly for (id1, id2, val) we have that searchEnv[id1][id2] = val.

They come from rules with constants like Head(x):- Body(4, x). We would here a ConstWrite of Vector#{(idOfBody, 0, 4)}.

type alias Facts[r: Eff] = Map[RelSym, BPlusTree[Vector[Int64], Boxed, r]] Source

The extensible database (EDB) of a program.

type alias WriteTuple = (Int32, Int32, Int32) Source

WriteTuple describes where variables that become bound for a context-specified RowVar are used later. Explicitly for (indexInFrom, indexTo, indexInTo) we have that for the context-specified RowVar, rv, write searchEnv[indexTo][indexInTo] = rv[indexInFrom].

They come from rules with variables like Head(x):- Body1(x), Body2(y, x), since x is used twice. We would here have a WriteTuple of Vector#{(0, idOfBody2, 1)} for Body1. This should be read as: The first value of Body1 should be saved as idOfBody2's (the position of Body2) second value.