[Haskell-cafe] unique identity and name shadowing during type inference