package ego

  1. Overview
  2. Docs

This module implements a fairly efficient "syntactic-rewrite-only" EGraph-based equality saturation engine that operates over Sexps.

The main interface to EGraph is under the module EGraph.

Note: This module is not safe for serialization as it uses Symbol.t internally to represent strings, and so will be dependent on the execution context. If you wish to persist EGraphs across executions, check out the EGraphs defined in Ego.Generic

module Symbol : sig ... end

Implements an efficient encoding of strings

module Query : sig ... end

This module encodes patterns (for both matching and transformation) over Sexprs and is part of Ego.Basic's API for expressing syntactic rewrites.

module Rule : sig ... end

This module encodes syntactic rewrite rules over Sexprs and is part of Ego.Basic's API for expressing syntactic rewrites.

module EGraph : sig ... end

This module defines the main interface to the EGraph provided by Ego.Basic.