Wie werden explizite Typdeklarationen für Funktionen bei Verwendung von GHCi bereitgestellt?

Wie definiere ich das Äquivalent dieser Funktion (entnommen aus learnyouahaskell) in GHCi?

import Data.List  

numUniques :: (Eq a) => [a] -> Int  
numUniques = length . nub  

Ohne die Typdeklaration akzeptiert GHCi die Funktionsdefinition, hat jedoch einen nicht hilfreichen Typ:

Prelude Data.List> import Data.List 
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int

Die resultierende Funktion akzeptiert nur eine Liste von Einheiten als Parameter.

Gibt es eine Möglichkeit, Typdeklarationen in GHCi bereitzustellen? Oder gibt es eine andere Möglichkeit, solche Funktionen zu definieren, für die keine Typdeklarationen erforderlich sind?

Ich habe im GHCi-Handbuch keine offensichtlichen Hinweise gesehen und mit Ausdrücken wie den folgenden experimentiert (ohne Erfolg):

> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int

Antworten auf die Frage(4)

Ihre Antwort auf die Frage