https://github.com/Peaker/bottle/blob/master/codeedit/Editor...
I removed all the top-level type declarations, and only one definition broke, because of the MR.
showP :: Show a => a -> String
showP = parenify . show
Once I removed the type declaration, I made it work again by adding a parameter to avoid the MR: showP x = parenify (show x)
and everything compiles smoothly.Feel free to browse the bottle repo -- and try to build it without top-level declaration. Apart from a few functions in the entire project that use Rank2, you won't need any declarations.