型クラス(type class)は,データ型をカテゴライズする役割を持つ概念です. 例えば,数値型全般を表す Num という型クラスは,数値型全般を表します. Num 型クラスの インスタンス(instance)は,具体的な数値型である Int や Double などです. 型クラスは,オブジェクト指向プログラミングにおける "クラス" と似通った概念ですが,レイヤが違う話なので注意が必要です. オブジェクト指向プログラミングにおけるクラスはデータ型であり,インスタンスはオブジェクトですが,Haskell における型クラスはデータ型のひとつ上の概念であり,インスタンスがデータ型です.