I am learning Haskell and I don't understand why I can do this:
f :: [Int] -> Bool f l | l==l = True | otherwise = False
But I can't do this.
f :: [a] -> Bool f l | l==l = True | otherwise = False
What's going on under the hood?