Classes | |
| class | AddMem |
| Threads the mem.M memory monad through the world: mem-extends continuations and rewires every memory operand to the current memory at that program point. More... | |
| class | SEO |
| Symbolic Expression Optimization. More... | |
Enumerations | |
| enum | { Proxy_SCCP_Top , Proxy_Bundle , Proxy_Sloxy , Proxy_Phi } |
Functions | |
| static size_t | idx_of (Defs vars, const Def *p) |
| static const Proxy * | isa_bundle (const Def *def, Lam *lam) |
| static bool | is_dependent (Lam *lam) |
Does lam's signature refer to its own binder's Var? | |
| static const Def * | mk_phi (World &w, Lam *lam, const Def *sloxy) |
| static bool | keep (Lam *lam, const Def *old_var, const Def *abstr) |
| anonymous enum |
|
static |
Does lam's signature refer to its own binder's Var?
Such a signature cannot be narrowed: dropping a component would tear its siblings off the binder.
Definition at line 30 of file seo.cpp.
References mim::Pi::dom(), is_dependent(), mim::Def::isa_mut(), and mim::Lam::type().
Referenced by is_dependent().
Definition at line 94 of file seo.cpp.
References mim::Proxy::isa(), and isa_bundle().
Referenced by isa_bundle(), and keep().
Definition at line 351 of file seo.cpp.
References mim::Proxy::isa(), and isa_bundle().