Parece imposible introspeccionar las restricciones de clases de tipos en las funciones y tipos de datos, etc. Sin embargo, ghci parece hacerlo.¿Cómo: t en ghci accede a toda esa información introspectiva?
Prelude> :t show
show :: (Show a) => a -> String
Así que ... de alguna manera conoce la restricción de clase de tipo ya que está imprimiendo. ¿Cómo está haciendo eso?