¿Por qué no podemos definir familias de datos cerrados?

Todo el siguiente trabajo:

{-# LANGUAGE TypeFamilies #-}

type family TF a
type instance TF Int = String
type instance TF Bool = Char

data family DF a
data instance DF Int = DFInt String
data instance DF Bool = DFBool Char

type family CTF a where
  CTF Int = String
  CTF Bool = Char
  CTF a = Double     -- Overlap OK!

... pero esto no (a partir de GHC-8.2):

data family CDF a where
  CDF Int = CDFInt String
  CDF Bool = CDFBool Char
  CDF a = CDFOther Double
wtmpf-file24527.hs:16:19: error: parse error on input ‘where’
   |
16 | data family CDF a where
   |                   ^^^^^

¿Es solo que nadie se ha molestado en implementar esto todavía, o hay una razón particular por la que no tendría sentido cerrar las familias de datos? Tengo una familia de datos donde preferiría mantener la inyectividad, pero también la oportunidad de hacer una instancia disyuntiva global. En este momento, la única forma en que veo que esto funcione es

newtype CDF' a = CDF' (CTF a)

Respuestas a la pregunta(1)

Su respuesta a la pregunta