S.: Derivable type classes (2000)

by R Hinze, Peyton Jones