I find it particularly confusing that GHCi prints the types of c and d
in exactly the same way, yet treats explicit type application on them
differently.
Try with :set -fprint-explicit-foralls. Maybe it should be the default when TypeApplications is enabled?