For example, section 3.13 ends with the note:
case x of { (a,_) | let b = not a in b :: Bool - a }
... Programmers are advised, therefore, to avoid guards that
end with a type signature.
I would support changing a type signature to an expression type
signature in this note
At Mon, 27 Jun 2011 15:02:33 +0100,
Paterson, Ross wrote:
There is no a priori reason why b should depend on a in a pair of
bindings such as these:
a = const (\x - x) b
b = const (a :: Int - Int) (a :: Bool - Bool)
There is: section 3.16 says that in an expression type