>>287
分かるけど、dataとnewtypeは微妙に意味がちがうから、最適化で変換するのは嫌なんだろう。
data D = D Int
newtype N = N Int

unD (D x) = True
unN (N x) = True
と定義すると、
unD undefined === undefined
unN undefined === True