Module Re.Replacer

module Mixfix = Domain.Mixfix
module Exp : sig ... end
module Replace : sig ... end
type t = Replace.t
val empty : t
val dom : t -> Domain.Lib.IdSet.t
val singleton : Domain.Lib.Id.t -> Exp.t -> t
val add : Domain.Lib.Id.t -> Exp.t -> t -> t
val filter : (Domain.Lib.Id.t -> Exp.t -> bool) -> t -> t
val freshen_binders : t -> Domain.Lib.IdSet.t -> Ol.Ast.block -> Re.Renamer.t
val replace_exp : t -> Ol.Ast.exp -> Ol.Ast.exp
val replace_exps : t -> Ol.Ast.exp list -> Ol.Ast.exp list
val replace_iterexp : t -> Ol.Ast.iterexp -> Ol.Ast.iterexp
val replace_iterexps : t -> Ol.Ast.iterexp list -> Ol.Ast.iterexp list
val replace_path : t -> Ol.Ast.path -> Ol.Ast.path
val replace_arg : t -> Ol.Ast.arg -> Ol.Ast.arg
val replace_args : t -> Ol.Ast.arg list -> Lang.Il.arg list
val replace_case : t -> Ol.Ast.case -> Ol.Ast.case
val replace_cases : t -> Ol.Ast.case list -> Ol.Ast.case list
val replace_guard : t -> Ol.Ast.guard -> Ol.Ast.guard
val replace_instr : t -> Ol.Ast.instr -> Ol.Ast.instr
val replace_instrs : t -> Ol.Ast.block -> Ol.Ast.block
val replace_block : t -> Ol.Ast.block -> Ol.Ast.block
val replace_iterinstr_bound : t -> Ol.Ast.iterinstr -> Ol.Ast.iterinstr
val replace_iterinstrs_bound : t -> Ol.Ast.iterinstr list -> Ol.Ast.iterinstr list