Stmt
A statement, representing both a stmt in a
do-expression, an ordinary qual in a list
comprehension, as well as a stmt in a pattern guard.
A statement in our imperative program, parameterized over the state.
A single statement, as in do-notation.
An expression statement. May be used in a do expression (with
do') or in a match (with
guard).
TODO: also allow using statements in list comprehensions.
Are we in a do expression or a monad comprehension?
This datatype is only used to report this context to the user in error
messages.
Pattern of a do-stmt, list comprehension, pattern guard, etc
call
isOK with this packet return true
A statement can be a nested block.
Pattern of a do-stmt, list comprehension, pattern guard, etc