>>88
その例なら簡単にできるけど、一般的には相当厳しいと思うよ。

型がシノニムだったら、辿って元の型を探さないといけないね。
import されてたら、それも全て辿らないといけないね。
template が使われてたら、展開しないといけないね。
Cプリプロセッサが使われてたら、これも展開しないといけないね。

型を決定するのに関わる事は他にもいっぱいある (言語拡張とか)。


あと、参照透明は破られないという前提で話してると思うけど、
unsafePerformIO 関数があることを忘れないように。