added paper on implementing type classes