It consists of a binder part and a body part. A lambda abstraction
creates a function, that can be applied to an argument. The binder is
usually a value binder, but it can also be a \emph{type binder} (or
It consists of a binder part and a body part. A lambda abstraction
creates a function, that can be applied to an argument. The binder is
usually a value binder, but it can also be a \emph{type binder} (or
binder, even when strictness was involved. Nonetheless, the prototype
handles this binder as expected.
binder, even when strictness was involved. Nonetheless, the prototype
handles this binder as expected.
- Note that these case statements are less powerful than the full Haskell
- case statements. In particular, they do not support complex patterns like
+ Note that these case expressions are less powerful than the full Haskell
+ case expressions. In particular, they do not support complex patterns like
in Haskell. Only the constructor of an expression can be matched,
complex patterns are implemented using multiple nested case expressions.
in Haskell. Only the constructor of an expression can be matched,
complex patterns are implemented using multiple nested case expressions.
when there is only a single constructor. For examples, to add the elements
of a tuple, the following Core is generated:
when there is only a single constructor. For examples, to add the elements
of a tuple, the following Core is generated:
\emph{one} application, no more and no less.
The function result should contain exactly one state variable, which
\emph{one} application, no more and no less.
The function result should contain exactly one state variable, which
state variable is referred to the \emph{output substate}
The type of this output substate must be identical to the type of
state variable is referred to the \emph{output substate}
The type of this output substate must be identical to the type of