>>607
http://www.sampou.org/haskell/report-revised-j/decls.html#instance-decls
> instance cx' => C (T u1 ... uk) where { d }
>
>ここで k>=0 および T は型シノニムではない。インス タンス化された構築子、
>(T u1 ... uk) は型構築子を単純な型変数 u1, ... uk に適用し たものである。
>これらの型変数は別々のものでなければならない。

というわけで、同じ型変数は二度使えない。
GHCとHugsではこれを許す拡張があるけど(ghc -fglasgow-exts および hugs -98)。