jon.recoil.org

Module Datalog.Column

Datalog tables are represented as a nesting of multiple maps; for instance, a binary relation on integers is represented as a unit Int.Map.t Int.Map.t.

A Column represents a single argument of a relation, and contains enough information to be combined with other columns into a n-ary relation.

Note: The Column.id and Column.hlist types encode some precise type-level information that enables an easy-to-use syntax for the create_relation function below. Understanding the type parameters for Column.id and Column.hlist is not necessary to use this module.

type ('t, 'k, 'v) id

A value of type ('t, 'k, 'v) id represents a column with keys of type 'k.

The 't and 'v parameters are only relevant when applied to a column that is part of a schema.

module type S = sig ... end
module Make (X : sig ... end) : Flambda2_datalog.Datalog.Column.S with type t = int