Stmt package:breakpoint
Pattern of a do-stmt, list comprehension, pattern guard, etc
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.
context of the do expression, used in pprArg
ApplicativeStmt represents an applicative expression built with
<$> and
<*>. It is generated by the
renamer, and is desugared into the appropriate applicative expression
by the desugarer, but it is intended to be invisible in error
messages.
For full details, see Note [ApplicativeDo] in
GHC.Rename.Expr
Command Located Statement
Expression Located Statement
Arguments to
(>>=) arising from a
do expression
or a monad comprehension must have a fixed runtime representation.
Test cases: RepPolyDoBind, RepPolyMcBind.
A value bound by a pattern guard must have a fixed runtime
representation.
Test cases: none.
The body of a do expression or a monad comprehension must
have a fixed runtime representation.
Test cases: RepPolyDoBody{1,2}, RepPolyMcBody.
Arguments to a guard in a monad comprehension must have a fixed
runtime representation.
Test case: RepPolyMcGuard.
A command-line Stmt in GHCi pat <- rhs
Context for HsDo (do-notation and comprehensions)
Haskell Statement Context.
Located do block Statement
Located Statement with separate Left and Right id's