Я изучаю Haskell, и я не понимаю, почему я могу это сделать:
f :: [Int] -> Bool
f l
| l==l = True
| otherwise = False
Но я не могу этого сделать.
f :: [a] -> Bool
f l
| l==l = True
| otherwise = False
Что происходит под капотом?