1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
open Core
open Matchers
open Match
open Ast
type t = Ast.t
type result = bool * environment option
type options = Options.t
module type Engine = sig
val options : t -> Options.t
val sat : result -> bool
val result_env : result -> environment option
val create : string -> expression list Or_error.t
val apply
: ?matcher:(module Matcher)
-> ?substitute_in_place:bool
-> t
-> environment
-> result
end