[Haskell-cafe] Rigid type variables and their role in type checking