Type classes for all.
Type classes for all.

Signed-off-by: Edward Z. Yang <dbd597f5635f432486c5d365e9bb585b3eaa1853@cs.stanford.edu>

gnprice/yamelot,gnprice/yamelot,gnprice/yamelot,gnprice/yamelot,gnprice/yamelot,gnprice/yamelot