Alias for a function name has a different type signature. Why?

Viewed 1454
import Data.List (genericLength)

len = genericLength

:t genericLength
genericLength :: (Num i) => [b] -> i
:t len
len :: [b] -> Integer

Why is the type of len different from type of genericLength? The intent here is to use a shorter alias for genericLength.

Aren't functions first-class in haskell? Shouldn't giving another name for a function result in an identical function?

1 Answers
Related