Algebraic Data Types for Python's pattern matching introduced in version 3.10
This is a continuation of the experimental ADT implementation I made a while back. It works in runtime, so the main effort right now is getting static typing working.
Original gist: https://gist.github.com/aarondewindt/1cb0af45f05c0da03bfbec6f050f5b58