[][src]Enum gluon_base::kind::Kind

pub enum Kind {
    Hole,
    Error,
    Variable(u32),
    Type,
    Row,
    Function(ArcKindArcKind),
}

Kind representation

All types in gluon has a kind. Most types encountered are of the Type kind which includes things like Int, String and Option Int. There are however other types which are said to be "higher kinded" and these use the Function (a -> b) variant. These types include Option and (->) which both have the kind Type -> Type -> Type as well as Functor which has the kind Type -> Type -> Type.

Variants

Hole
Error
Variable(u32)

Representation for a kind which is yet to be inferred.

Type

The simplest possible kind. All values in a program have this kind.

Row

Kinds of rows (for polymorphic records).

Function(ArcKindArcKind)

Constructor which takes two kinds, taking the first as argument and returning the second.

Implementations

impl Kind[src]

pub fn hole() -> ArcKind[src]

pub fn error() -> ArcKind[src]

pub fn variable(v: u32) -> ArcKind[src]

pub fn typ() -> ArcKind[src]

pub fn row() -> ArcKind[src]

pub fn function(l: ArcKind, r: ArcKind) -> ArcKind[src]

Trait Implementations

impl Clone for Kind[src]

impl Debug for Kind[src]

impl Default for Kind[src]

impl Display for Kind[src]

impl Eq for Kind[src]

impl From<Kind> for ArcKind[src]

impl Hash for Kind[src]

impl PartialEq<Kind> for Kind[src]

impl StructuralEq for Kind[src]

impl StructuralPartialEq for Kind[src]

Auto Trait Implementations

impl RefUnwindSafe for Kind

impl Send for Kind

impl Sync for Kind

impl Unpin for Kind

impl UnwindSafe for Kind

Blanket Implementations

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

impl<Id> AsId<Id> for Id where
    Id: ?Sized
[src]

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

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

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

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

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[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.