package ego

  1. Overview
  2. Docs

The module Simple implements a scheduler that runs every rule each time - i.e applies no scheduling at all. This works fine for rewrite systems with a finite number of EClasses but can become a problem if the number of EClasses is too large or unbounded.

type t
type data
val init : unit -> data
val create_rule_metadata : t -> 'b -> data
val should_stop : t -> int -> data -> bool
val guard_rule_usage : ('node, 'analysis, 'data, 'permission) egraph -> t -> data -> int -> (data -> (Id.t * Id.t StringMap.t) Iter.t) -> (Id.t * Id.t StringMap.t) Iter.t