¿Cómo proporcionar declaraciones de tipo explícitas para funciones cuando se usa GHCi?

Cómo definir el equivalente de esta función (tomado deLearnyouahaskell) dentro de GHCi?

import Data.List  

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

Sin la declaración de tipo, GHCi acepta la definición de función, pero termina con un tipo inútil:

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

La función resultante solo acepta una lista de unidades como parámetro.

¿Hay alguna forma de proporcionar declaraciones de tipo en GHCi? ¿O hay otra forma de definir funciones como estas que no requieren declaraciones de tipo?

No vi pistas obvias en la guía GHCi, y experimenté con expresiones como las siguientes (en vano):

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta