[][src]Enum voile::syntax::abs::ast::Abs

pub enum Abs {
    Type(SyntaxInfoLevel),
    Bot(SyntaxInfo),
    Var(IdentUIDDBI),
    Ref(IdentDBI),
    Meta(Ident),
    Lift(SyntaxInfou32Box<Self>),
    Cons(Ident),
    Variant(Ident),
    App(SyntaxInfoBox<Self>, Box<Self>),
    Dt(SyntaxInfoDtKindUIDBox<Self>, Box<Self>),
    Lam(SyntaxInfoIdentUIDBox<Self>),
    Pair(SyntaxInfoBox<Self>, Box<Self>),
    Fst(SyntaxInfoBox<Self>),
    Snd(SyntaxInfoBox<Self>),
    Sum(SyntaxInfoVec<Self>),
}

Variants

Type(SyntaxInfoLevel)Bot(SyntaxInfo)

Bottom type

Var(IdentUIDDBI)

Local variable

Ref(IdentDBI)

Global variable

Meta(Ident)

Meta variable

Lift(SyntaxInfou32Box<Self>)

Lift an expression many times

Cons(Ident)

Constructor call

Variant(Ident)

One variant inside of a sum type

App(SyntaxInfoBox<Self>, Box<Self>)

Apply or Pipeline in surface

Dt(SyntaxInfoDtKindUIDBox<Self>, Box<Self>)

Dependent Type, (a -> b -> c) as Dt(DtKind::Pi, a, Dt(DtKind::Pi, b, c))

Lam(SyntaxInfoIdentUIDBox<Self>)

The first SyntaxInfo is the syntax info of this whole lambda, while the second is about its parameter

Pair(SyntaxInfoBox<Self>, Box<Self>)Fst(SyntaxInfoBox<Self>)Snd(SyntaxInfoBox<Self>)Sum(SyntaxInfoVec<Self>)

Methods

impl Abs[src]

pub fn dependent_type(
    info: SyntaxInfo,
    kind: DtKind,
    name: UID,
    a: Self,
    b: Self
) -> Self
[src]

pub fn app(info: SyntaxInfo, function: Self, argument: Self) -> Self[src]

pub fn fst(info: SyntaxInfo, of: Self) -> Self[src]

pub fn snd(info: SyntaxInfo, of: Self) -> Self[src]

pub fn lam(whole_info: SyntaxInfo, param: Ident, name: UID, body: Self) -> Self[src]

pub fn pair(info: SyntaxInfo, first: Self, second: Self) -> Self[src]

pub fn lift(info: SyntaxInfo, lift_count: u32, expr: Self) -> Self[src]

pub fn pi(info: SyntaxInfo, name: UID, input: Self, output: Self) -> Self[src]

pub fn sig(info: SyntaxInfo, name: UID, first: Self, second: Self) -> Self[src]

Trait Implementations

impl ToSyntaxInfo for Abs[src]

impl Eq for Abs[src]

impl PartialEq<Abs> for Abs[src]

impl Clone for Abs[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Abs[src]

impl Display for Abs[src]

Auto Trait Implementations

impl Send for Abs

impl Sync for Abs

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]