[Haskell] question about a failure to generalize