Implementing Type Classes

by John Peterson, Mark Jones