
4 Jan
2012
4 Jan
'12
8:59 a.m.
I don't see the point in universally quantifying over types which are already present in the environment
I think it reduces the indeterminacy you come across when you read your program ("where does this type variable come from, btw?")
So is there anyway to "force" the scoping of variables, so that f :: a -> a f x = x :: a becomes valid?
You mean either than compiling with ScopedTypeVariables and adding the
explicit forall a. on f? I don't think.
2012/1/4 Brandon Allbery
Would you try:
f :: a -> a f x = undefined :: a
And tell me if it works? IMO it doesn't.
It won't
Apparently, Yucheng says it does.