A workbench to explore pattern matching implementations in programming languages. These include:
- How to implement an interpreter for a PL with pattern matching
- How to compile pattern matching constructs to
if
constructs - Exhaustiveness checking for pattern matching
- Typechecking for pattern matching
- Pattern synonyms & first class patterns (a la F# active patterns)
- Maybe view patterns in a dependently typed setting