DataKinds 言語拡張を使って Typed Heterogeneous List とその基本操作を実装してみた

DataKinds 言語拡張のおかげで、 [String, Bool] のような型レベルのリストリテラルが扱えるようになり、 異なる型の要素を持つことができるヘテロリスト、それも Dynamic のようなユニバーサル型を使った Untyped なものではなく、各要素ごとに異なる型付けができるヘテロリスト ( Typed Heterogeneous List ) を、以下のようにスマートに定義できるようになった。

ので、このヘテロリストに対する基本的な操作を実装してみた。 次のような感じで使える。 ( 要 GHC 7.6.1 以上 )

実装

参考にしたサイト