Abstract pattern synonyms (for hsig and hs-boot)
Most declaration forms (data types, values, type families, etc) support forward declaration in hs-boot/hsig files. However, pattern synonyms do not. This seems like a major omission!
Some problems to solve:
- The obvious syntax
pattern Foo :: pat_tyis insufficient to specify whether or not a pattern is bidirectional or unidirectional. How should this be represented syntactically?
- What is the interaction with bundling? Should it be possible to export a bundle of abstract pattern synonyms, with the intent that this means an implementation must also have bundled them together
- See also #12717; abstract pattern synonym should be implementable with a plain old constructor
|Component||Compiler (Type checker)|
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information