下の記事の続き。 hintは意外に私の欲しい機能がなく、たとえば「あるレコード型のフィールド名をすべて取得」みたいなことができない。Template Haskell の reify 関数なら、任意の識別子について reify が使えるののに… というわけで、 ややアクロバティックだけど、Template Haskellでreifyしたデータを、 hintのinterpret関数でこちら側にもってくる、というコードを書いた。 必要なライブラリはhintのみ。 使い方 まず、下で説明する Meta.hs をカレントに置く。 下の Foo.hs から module Foo where data Point = Point {x::Int, y::Int} Point型の情報を取り出して、そのままprintする. $ ./Main Foo Point Right (TyConI (DataD []