Struct libunseemly::form::Form[][src]

pub struct Form {
    pub name: Name,
    pub grammar: Rc<FormPat>,
    pub type_compare: BiDiWR<Canonicalize, Subtype>,
    pub synth_type: BiDiWR<SynthTy, UnpackTy>,
    pub eval: BiDiWR<Eval, Destructure>,
    pub quasiquote: BiDiWR<QQuote, QQuoteDestr>,
}
Expand description

Unseemly language form. This is what tells us what a particular Node actually does.

Fields

name: Name

The name of the form. Mainly for internal use.

grammar: Rc<FormPat>

The grammar the programmer should use to invoke this form. This contains information about bindings and syntax extension:

type_compare: BiDiWR<Canonicalize, Subtype>

(Meaningful for types only) Subtype.

synth_type: BiDiWR<SynthTy, UnpackTy>

From a type environment, construct the type of this term.

eval: BiDiWR<Eval, Destructure>

(Meaningful for exprs and pats only) From a value environment, evaluate this term. Or, (HACK) macro expansion, for macro invocations (just so we don’t need another field)

quasiquote: BiDiWR<QQuote, QQuoteDestr>

At runtime, pick up code to use it as a value

Trait Implementations

Formats the value using the given formatter. Read more

pointer equality on the underlying structure!

This method tests for !=.

The Unseemly type that corresponds to to the Reifiable type. This leaves abstract the type parameters of Self; invoke like Self::<Irr,Irr>::ty(). e.g. ∀ A. Pair<A int> TODO: rename to generic_ty Read more

A name for that type, so that recursive types are okay. Ignore the type parameters of Self; invoke like Self::<Irr,Irr>::ty_name(). e.g. WithInteger Read more

The Unseemly value that corresponds to a value.

Get a value from an Unseemly value

How to refer to this type, given an environment in which ty_name() is defined to be ty(). Parameters will be concrete. e.g. WithInteger<Float> (Types using this type will use this, rather than ty) Don’t override this. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Converts self into T using Into<T>. Read more

Performs the conversion.

Performs the conversion.

Pipes by value. This is generally the method you want to use. Read more

Borrows self and passes that borrow into the pipe function. Read more

Mutably borrows self and passes that borrow into the pipe function. Read more

Borrows self, then passes self.borrow() into the pipe function. Read more

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more

Borrows self, then passes self.as_ref() into the pipe function.

Mutably borrows self, then passes self.as_mut() into the pipe function. Read more

Borrows self, then passes self.deref() into the pipe function.

Mutably borrows self, then passes self.deref_mut() into the pipe function. Read more

Should always be Self

Immutable access to a value. Read more

Mutable access to a value. Read more

Immutable access to the Borrow<B> of a value. Read more

Mutable access to the BorrowMut<B> of a value. Read more

Immutable access to the AsRef<R> view of a value. Read more

Mutable access to the AsMut<R> view of a value. Read more

Immutable access to the Deref::Target of a value. Read more

Mutable access to the Deref::Target of a value. Read more

Calls .tap() only in debug builds, and is erased in release builds.

Calls .tap_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_borrow() only in debug builds, and is erased in release builds. Read more

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_ref() only in debug builds, and is erased in release builds. Read more

Calls .tap_ref_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_deref() only in debug builds, and is erased in release builds. Read more

Calls .tap_deref_mut() only in debug builds, and is erased in release builds. Read more

Attempts to convert self into T using TryInto<T>. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.