Module Tezos_benchmark_023_PtSeouLo.Rules

type rule_set = {
  1. rule_patt : pattern;
  2. replacements : guarded_replacement list;
}
and guarded_replacement = {
  1. type_constraint : type_constraint;
  2. replacement : replacement list;
}
and type_constraint =
  1. | No_cnstrnt
  2. | Data_cnstrnt of {
    1. cnstrnt : Tezos_benchmark_type_inference_023_PtSeouLo.Type.Base.t;
    2. fresh : int list;
    }
  3. | Instr_cnstrnt of {
    1. cnstrnt : Tezos_benchmark_type_inference_023_PtSeouLo.Inference.transformer;
    2. fresh : var list;
    3. fresh_stack : int list;
    }
and pattern =
  1. | Pattern of Kernel.Patt.t
  2. | Root
and var =
  1. | Plain of int
  2. | Cmp of int
val add_fresh_variables : var list -> Tezos_benchmark_type_inference_023_PtSeouLo__Inference.michelson_type -> Tezos_benchmark_type_inference_023_PtSeouLo__Inference.michelson_type -> unit Tezos_benchmark_type_inference_023_PtSeouLo.Inference.M.t
val evaluate_guard : Tezos_benchmark_type_inference_023_PtSeouLo__Inference.state -> type_constraint -> Tezos_benchmark_type_inference_023_PtSeouLo.Mikhailsky.Path.t -> bool
val filter_matches : Tezos_benchmark_type_inference_023_PtSeouLo__Inference.state -> type_constraint -> Tezos_benchmark_type_inference_023_PtSeouLo.Mikhailsky.Path.t list -> Tezos_benchmark_type_inference_023_PtSeouLo.Mikhailsky.Path.t list
module Instruction : sig ... end