functional programming Types vs. datatypes vs. typeclasses in Haskell I learned the words type, datatype, and typeclass in rapid succession while reading Haskell Programming from First Principles. Here's how they are different.