Go to the source code of this file.
Classes | |
| class | mim::Prod |
| Base class for Sigma and Tuple. More... | |
| class | mim::Sigma |
| A dependent tuple type. More... | |
| class | mim::Tuple |
| Data constructor for a Sigma. More... | |
| class | mim::Seq |
| Base class for Arr and Pack. More... | |
| class | mim::Arr |
| A (possibly paramterized) Array. More... | |
| class | mim::Pack |
| A (possibly paramterized) Tuple. More... | |
| class | mim::Extract |
| Extracts from a Sigma or Array-typed Extract::tuple the element at position Extract::index. More... | |
| class | mim::Insert |
| Creates a new Tuple / Pack by inserting Insert::value at position Insert::index into Insert::tuple. More... | |
| class | mim::Select |
| Matches (ff, tt)#cond - where cond is not a Literal. More... | |
| class | mim::Branch |
| Matches (ff, tt)#cond arg where cond is not a Literal. More... | |
| class | mim::Dispatch |
| Matches a dispatch through a jump table of the form: (target_0, target_1, ...)#index arg where index is not a Literal. More... | |
Namespaces | |
| namespace | mim |
Functions | |
Helpers to work with Tuples/Sigmas/Arrays/Packs | |
| bool | mim::is_unit (const Def *) |
| std::string | mim::tuple2str (const Def *) |
| const Def * | mim::tuple_of_types (const Def *t) |
Concatenation | |
| DefVec | mim::cat (Defs, Defs) |
| DefVec | mim::cat (const Def *a, Defs bs) |
| DefVec | mim::cat (Defs as, const Def *b) |
| DefVec | mim::cat (nat_t n, nat_t m, const Def *a, const Def *b) |
| const Def * | mim::cat_tuple (nat_t n, nat_t m, const Def *a, const Def *b) |
| const Def * | mim::cat_sigma (nat_t n, nat_t m, const Def *a, const Def *b) |
| const Def * | mim::cat_tuple (World &, Defs, Defs) |
| const Def * | mim::cat_sigma (World &, Defs, Defs) |
| const Def * | mim::cat_tuple (const Def *a, Defs bs) |
| const Def * | mim::cat_tuple (Defs as, const Def *b) |
| const Def * | mim::cat_sigma (const Def *a, Defs bs) |
| const Def * | mim::cat_sigma (Defs as, const Def *b) |