import Data.List (genericLength)
len = genericLength
:t genericLength
genericLength :: (Num i) => [b] -> i
:t len
len :: [b] -> Integer
Почему тип len отличается от типа genericLength? Целью здесь является использование более короткого псевдонима для genericLength.
Не являются ли функции первоклассными в haskell? Не следует ли указывать другое имя для функции в идентичной функции?