Simon L. Peyton Jones: Classes, Jim, But Not as We Know Them - Type Classes in Haskell: What, Why, and Whither. ECOOP 2009: 1