package datalog

  1. Overview
  2. Docs

This module is present to allow the user to extend explanations with her own types.

This is largely inspired by this thread

type t

The universal type

type 'a embedding

Conversion between the universal type and 'a

val embed : unit -> 'a embedding

Create a new embedding. Values packed by a given embedding can only be unpacked by the same embedding.

val pack : 'a embedding -> 'a -> t
val unpack : 'a embedding -> t -> 'a option
val compatible : 'a embedding -> t -> bool