What's Algebraic About Algebraic Data Types?

If you're relatively new to the statically-typed functional programming scene, there's a good chance you've encountered these fancy-sounding things called "algebraic data types" (often abbreviated as ADTs), and have been left feeling both a little intimidated by them and confused about what they have to do with algebra. That was…