Enum fungi_lang::ast::IdxTm
[−]
[src]
pub enum IdxTm { Var(Var), Sing(NameTm), Empty, Apart(IdxTmRec, IdxTmRec), Union(IdxTmRec, IdxTmRec), Unit, Bin(IdxTmRec, IdxTmRec), Pair(IdxTmRec, IdxTmRec), Proj1(IdxTmRec), Proj2(IdxTmRec), Lam(Var, Sort, IdxTmRec), App(IdxTmRec, IdxTmRec), Map(NameTmRec, IdxTmRec), FlatMap(IdxTmRec, IdxTmRec), Star(IdxTmRec, IdxTmRec), NoParse(String), }
Index terms
Variants
Var(Var)
Sing(NameTm)
Empty
Apart(IdxTmRec, IdxTmRec)
Union(IdxTmRec, IdxTmRec)
Unit
Bin(IdxTmRec, IdxTmRec)
All binary combinations of two name sets.
This is a common special case of curried nameset mapping:
( i ,, j ) := (#a:Nm. ((#b:Nm. a,,b) j)) i
Since this double-mapping pattern is very common, we introduce a special AST node for it.
Bin
Sorting rule:
Gamma |- i : NmSet
Gamma |- j : NmSet
---------------------------- :: Bin
Gamma |- ( i ,, j ) : NmSet
Pair(IdxTmRec, IdxTmRec)
Pair
Sorting rule:
Gamma |- i : g1
Gamma |- j : g2
----------------------------- :: Pair
Gamma |- ( i , j ) : g1 x g2
Proj1(IdxTmRec)
Proj2(IdxTmRec)
Lam(Var, Sort, IdxTmRec)
App(IdxTmRec, IdxTmRec)
Map(NameTmRec, IdxTmRec)
FlatMap(IdxTmRec, IdxTmRec)
Star(IdxTmRec, IdxTmRec)
NoParse(String)
Trait Implementations
impl Clone for IdxTm
[src]
fn clone(&self) -> IdxTm
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for IdxTm
[src]
impl Eq for IdxTm
[src]
impl PartialEq for IdxTm
[src]
fn eq(&self, __arg_0: &IdxTm) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &IdxTm) -> bool
[src]
This method tests for !=
.