When a closed type family has only one instance it seems like it should never fail to simplify. Yet this doesn't appear to be the case. When I defined (in GHC 7.8.3) the closed type family
type family (:.:) f g a where (:.:) f g a = f (g a)
I get errors such as
'Could not deduce (Object c3 ((:.:) f g a) ~ Object c3 (f (g a)))'
(where Object is a Constraint family), indicating that f (g a) is not being substituted for (:.:) f g a as desired. Any idea why this happens?