Pattern Synonyms and type families
Haskell Community [Unofficial]
June 1, 2026
I don’t think there is a fundamental difficulty here, it just hasn’t been implemented (yet). Pattern synonyms would need to be internally tagged as to whether they are promotable, and promotable pattern synonyms could be treated as type synonyms. It’s true that type families may occur in the pattern synonym’s type, but that’s also true for data constructors.
In fact, the example works if you manually add a type synonym definition
type ZeroAB = Ab 0 0
beside the pattern synonym. This could be annoying if it leads to needing to disambiguate between the type and pattern synonym (when they conceptually represent the same thing), but in most contexts GHC’s existing support for punned namespaces should be enough.
Discussion in the ATmosphere