Ad-hoc polymorphism, known most commonly as "type classes" (in Haskell originally, and Scala more recently) or "protocols" (in Clojure), enables us to write highly generic, modular and reusable code. We can easily invent our own type classes as we see fit, but it turns out that several common type classes -- many of which represent mathematical concepts such as "monad" and "functor" -- capture some very useful patterns for software architecture, and end up appearing frequently in many popular libraries. The "Typeclassopedia" will give us a whirlwind tour of these type classes, their operations and how they're used in real-world, production code.
6:30 Doors Open - Come grab a bite/drink and mingle
7:00 Presentation Kicks-off
ABOUT JOHN KODUMAL
John Kodumal received his Ph.D. in theoretical computer science in 2006 following research with Alex Aiken (Stanford) and George Necula (Berkeley) on static program analysis. Since completing his dissertation he has led the development of code analysis products at Coverity, currently leads the Plugin Exchange team at Atlassian, and has most recently avoided major catastrophe on honeymoon in the Sahara. Ask him about the camel incident.