幽霊型による部分型付けの紹介 これまでは、幽霊型を使って、型レベルの自然数や整数を作る方法を中心に話してきました。 幽霊型がなんだかわからない人は、 幽霊型の紹介 読むとよいでしょう。 今回は、もう少し違ったテーマとして、幽霊型を使った部分型付けの話をしたいと思います。 予定では、今回も含めて 3 種類の方法を紹介するつもりですが、 結論から言うと、今回の方法は変な制限がなく、最も扱いやすい手法です。 基礎知識 部分型って何? この記事では、便宜上、型は値の集合である、と思うことにしましょう (値の集合だと、一般的な型の定義としては狭すぎますが、あくまで説明の都合です)。 例えば、int 型は整数の集合 $\mathbb{Z}$、nat 型は自然数の集合 $\mathbb{N}$、 という具合に対応します。 集合には、部分集合として包含関係があり、先程の例では $\mathbb{N} \s