Would you be open to a PR defining liftings of Pretty to * -> * and * -> * -> *, a la Show1 &c. from Data.Functor.Classes? It makes (decidable) recursive instances for Fix, Free, Cofree &c. much easier to define:
instance Pretty1 f => Pretty (Fix f) where
pretty (Fix f) = liftPretty pretty prettyList f
If so, I’ll be happy to submit one 😊