Commit af9dd9d3 authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

Comments about shadowing

parent 1993ee4b
......@@ -299,6 +299,19 @@ data Bind b = NonRec b (Expr b)
deriving (Data, Typeable)
Note [Shadowing]
While various passes attempt to rename on-the-fly in a manner that
avoids "shadowing" (thereby simplifying downstream optimizations),
neither the simplifier nor any other pass GUARANTEES that shadowing is
avoided. Thus, all passes SHOULD work fine even in the presence of
arbitrary shadowing in their inputs.
In particular, scrutinee variables `x` in expressions of the form
`Case e x t` are often renamed to variables with a prefix
"wild_". These "wild" variables may appear in the body of the
case-expression, and further, may be shadowed within the body.
Note [Literal alternatives]
Literal alternatives (LitAlt lit) are always for *un-lifted* literals.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment