is shadowing allowed in CoreSyn?
megacz at cs.berkeley.edu
Mon Feb 14 15:13:25 CET 2011
Thank you (and Dimitrios) once again for so patiently answering my
System FC (and CoreSyn) questions!
Hopefully this will soon lead to something more useful than gigantic,
illegible proof-tree printouts. :)
One last clarification:
Simon Peyton-Jones <simonpj at microsoft.com> writes:
> | If it is okay, I assume it creates a situation where you may shadow, but
> | only if the variables have the same type. In other words, you can't
> | represent this term without doing some \alpha-renaming:
> | \lambda x:Int . \lambda x:Char . e
> Yes, that's fine too. You can shadow without using the same type.
Hrm, doesn't each "Var" know its own type (via Var.varType, a field of
the Id alternative)? How could I use the same Var twice at different
types? Or did you mean that OccName-shadowing is allowed, but
Var-shadowing is not?
More information about the Cvs-ghc