Lennart Augustsson wrote:

let data Bar = ... in  ...

If you allow this you need to be very careful about type equality. When is Bar equal to Bar? If it's inside a recursive function, does each invocation get its own Bar? (In SML the answer is yes.)

Can you give an example of how this would be observable in SML? AFAICS, there is no way to tell the difference, because generative type names are not allowed to escape their scope. (You can observe dynamic generativity of exception constructors, though.)

If you decide the answer is no, then is the beta rule still valid?

I think with the scoping restrictions in place the beta rule would not be affected.

- Andreas

--
Andreas Rossberg, [EMAIL PROTECTED]
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to