I love startups, technology, and science. I write about geeky stuff. Mostly. Twitter LinkedIn Github Type classes, object-oriented interfaces, and ML-style modules were all invented to solve the same core problem: how do we abstract over a set of functions and types that might have multiple concrete implementations? For example, a monoid is an algebraic structure with an associative binary operati