Idiomatic algebraic data types in Python with dataclasses and Union | Dark Hacker News