[−][src]Enum minitt::ast::Closure
Clos
in Mini-TT.
$f,g ::=$
Variants
Abstraction(Pattern, Option<Box<Value>>, Expression, Box<Telescope>)
$\lang \lambda p.M,\rho \rang$,
cl
in Mini-TT.
Closure that does a pattern matching.
Members: pattern, parameter type (optional), body expression and the captured scope.
Value(Box<Value>)
This is not present in Mini-TT, thus an extension.
Sometimes the closure is already an evaluated value.
Choice(Box<Self>, String)
$f \circ c$
clCmp
in Mini-TT.
Closure that was inside of a case-split.
For example, in a definition:
f = split { TT a => bla };
The part TT a => bla
is a choice closure, where Box<Self>
refers to the a => bla
part
and TT
is the String
.
Methods
impl Closure
[src]
pub fn instantiate(self, value: Value) -> Value
[src]
$$
\begin{alignedat}{2}
& \textsf{inst} \lang \lambda p.M, \rho \rang v &&= ⟦ M ⟧ (\rho,p=v) \\
& \textsf{inst} (f \circ c) v &&= \textsf{inst} \ f (c \ v)
\end{alignedat}
$$
*
in Mini-TT.
Instantiate a closure with val
.
impl Closure
[src]
pub fn fmt_with_type(
&self,
f: &mut Formatter,
t: Option<&Value>
) -> Result<(), FmtError>
[src]
&self,
f: &mut Formatter,
t: Option<&Value>
) -> Result<(), FmtError>
Actual implementation of fmt
for Closure
Trait Implementations
impl Clone for Closure
[src]
fn clone(&self) -> Closure
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Display for Closure
[src]
impl Debug for Closure
[src]
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From for T
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,