Как определить эквивалент этой функции (взят из learnyouahaskell ) внутри GHCi?
import Data.List
numUniques :: (Eq a) => [a] -> Int
numUniques = length . nub
Без объявления типа GHCi принимает определение функции, но в итоге получается бесполезный тип:
Prelude Data.List> import Data.List
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int
Результирующая функция принимает только список единиц в качестве параметра.
Есть ли способ предоставить объявления типов в GHCi? Или есть другой способ определения таких функций, который не требует объявления типов?
Я не видел очевидных подсказок в руководстве GHCi и экспериментировал с такими выражениями, как следующие (безрезультатно):
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int