Types, Type Classes, and Functions!