deriving ... によるスーパークラスとデフォルトのメソッド定義を実装する。
アイデアメモ(p.325 あたり)
deriving の実装は、scandecl で dataDecl をスキャンしたときだろう。 そのときに、instanceDecl も発生させればよいように思われる。 デフォルト実装は、Prim.show, Prim.eq, Prim.<= を呼び出す形でどうか。
など。Ord(や、おそらく Enum) に必要な順序も、ここでなら与えられるだろう。
017 に対処したことで、sample138, 139 はエラーするようになっている。 そのため、それぞれ derivingshow, derivingshow2 として testcases に格下げした。
scanDecl において、deriving Show にであったら、
instance Show Hoge where show = Prim.derivedShow
という宣言も生成するようにしたらよさそう。
文脈の推測については、GHCマニュアルの記述 もみよう。
deriving Show については、078 もみよ。