void apply(Stage &s) final
Dito, but invoked by Stage::recreate.
@ Irreducible
η-reduction not possible as we stumbled upon a Var.
@ Reduce
η-reduction performed.
void apply(const App *app) final
Invoked if your Stage has additional args.
void mark_irreducible(Lam *lam)
void apply(bool callee_only)
const Def * rewrite(const Def *) override
EtaRed(World &world, flags_t annex)
undo_t analyze(const Var *) override
FPPass(World &world, std::string name)
static T as(const Def *def)
Common base for Phase and Pass.
A variable introduced by a binder (mutable).
The World represents the whole program and manages creation of MimIR nodes (Defs).
GIDMap< Lam *, To > LamMap