Glasgow Haskell Compiler
ユースケースには、内容に応じたコンテナの最適化と、型レベルのメタプログラミングが含まれている。
動的スコープを持つ暗黙的な関数パラメータ。これは型クラスの制約と同様に、型で表現される。
型クラスに関する拡張は以下の通りである。
型クラスは複数の型によってパラメータ化することができる。従って、型クラスは型の組だけでなく、n-項関係を記述することができる。
関数従属性は、その部分の関係を型の数学的関数に制約する。つまり、ある型タイプの一方のパラメータが固定されると、もう一方のパラメータが完全に決定するように束縛が指定される。これは曖昧さがある状況で型推論ができる方法を案内する。
型クラスのインスタンスの許容できる形状に関するルールを大幅に緩めた。これが全て有効なとき、型クラスシステムはコンパイル時に論理プログラミング向けのチューリング完全な言語となる。
型族は型クラスに関連付けることができる。
確実な型クラスのインスタンスの自動生成は、幾つかの方法で拡張されている。ジェネリックプログラミングと一般再帰パターン向けの新たな型クラスに対応している。更に、新しい型が既存の型と同じであると宣言された場合、基の型に対して宣言された型クラスのインスタンスは、空の新しい型に昇格する可能性がある。