Context: ghc-proposals/ghc-proposals#273 (comment)
I have not reviewed this proposal thoroughly, however I would really like this feature and have considered proposing it in the past. To make this more clearly defined and understandable for users, I'd like to propose a simple rule for what is allowed:
Local types could desugar to top level declarations
My intuition says that if this holds true then the feature becomes much easier to implement than if it does not. As far as I can tell this rule is mostly already followed in the proposal. Specifically:
All instances remain (conceptually) global, but they may involve local types and values