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?