MimIR 0.1
MimIR is my Intermediate Representation
|
Go to the source code of this file.
Classes | |
class | mim::Pi |
A dependent function type. More... | |
class | mim::Lam |
A function. More... | |
class | mim::App |
Namespaces | |
namespace | mim |
Typedefs | |
Lam | |
GIDSet / GIDMap keyed by Lam::gid of | |
template<class To > | |
using | mim::LamMap = GIDMap<Lam*, To> |
using | mim::LamSet = GIDSet<Lam*> |
using | mim::Lam2Lam = LamMap<Lam*> |
Functions | |
Helpers to work with Functions | |
const App * | mim::isa_callee (Ref def, size_t i) |
Lam * | mim::isa_workable (Lam *lam) |
These are Lams that are neither nullptr , nor Lam::is_external, nor Lam::is_unset. | |
std::pair< const App *, Lam * > | mim::isa_apped_mut_lam (Ref def) |
std::deque< const App * > | mim::decurry (Ref) |
Yields curried Apps in a flat std::deque<const App*> . | |
Ref | mim::compose_cn (Ref f, Ref g) |
The high level view is: | |
std::pair< Ref, DefVec > | mim::collect_args (Ref def) |
Helper function to cope with the fact that normalizers take all arguments and not only its axiom arguments. | |