型クラスはインスタンスメーカー仕様

指標Σに対して、モデルの集合は |Model[Σ]| となる。適当な集合 K からの写像 K → |Model[Σ]| をインスタンスメーカー〈クリエイター | コンストラクタ | ビルダー〉と呼ぶ。なんらかの忘却射影 U:|Model[Σ]| → K があり、インスタンスメーカーがセクションになっているときが型クラス構造。

型クラス構造には:

  1. 指標 Σ
  2. 忘却射影 U
  3. インスタンスメーカー〈モデルメーカー〉 M

があり。

  1. U:|Model[Σ]| → K
  2. M:K ⊇→ |Model[Σ]|
  3. M;U ⊆ Id_K

適当な忘却射影に対するモデルメーカーが多値であってもよい。インスタンス生成のときは、どの値〈モデル〉が選ばれるかは非決定性になるが、別にかまわない

型クラスが分かりにくいのは、「型クラス」の意味が:

  1. 指標
  2. 指標のモデルクラス(またはモデル圏)
  3. インスタンスメーカー仕様=指標+忘却射影

のどれか分からないから。インスタンスも:

  1. 指標のモデル
  2. インスタンスメーカー〈モデルメーカー〉
  3. インスタンスメーカーの特定値

のどれか分からないから。