Algebraic types… seems like the kind of math-y work Haskell programmers would use. But in reality you don’t need to know type theory or have a PhD in mathematics to understand them. Algebraic types aren't new types. They are simply a new way of thinking about the types you already know about.