Have you seen Python 3.10's pattern matching? https://peps.python.org/pep-0636/
While it doesn't bring you Haskell ADTs, it sounds like it could make your `isinstance`-style code a lot cleaner.
While it doesn't bring you Haskell ADTs, it sounds like it could make your `isinstance`-style code a lot cleaner.