of a case expression to normal form (evaluating any function
applications, variable references and case expressions) is
sufficient to decide which case alternatives should be chosen.
- \todo{ref?}
\stopframedtext
}
We cannot leave all these \hs{State} type constructors out, since that
would change the type (unlike when using type synonyms). However, when
using type synonyms to hide away sub-states (see
- \in{section}[sec:prototype:sub-statesynonyms] below), this
+ \in{section}[sec:prototype:substatesynonyms] below), this
disadvantage should be limited.
\subsubsection{Different input and output types}
and output state types, possible reducing the type-safety of the
descriptions.
- \subsection[sec:prototype:sub-statesynonyms]{Type synonyms for sub-states}
+ \subsection[sec:prototype:substatesynonyms]{Type synonyms for sub-states}
As noted above, when using nested (hierarchical) states, the state types
of the \quote{upper} functions (those that call other functions, which
call other functions, etc.) quickly become complicated. Also, when the