It is quite cumbersome to implement PrettyCooked instances manually. I think it would be nice to implement a deriving mechanism for PrettyCooked. When we implement those by hand, we already do it in a very deterministic and algorithmic way (using prettyItemize for product types fields and list headers for constructors). There are already a lot of PrettyCooked instances for basic haskell and cardano types.