036 deriving 構文をサポートする

↑up

概要

deriving ... によるスーパークラスとデフォルトのメソッド定義を実装する。

調査メモ

2020-04-15 (Wed)

アイデアメモ(p.325 あたり)

deriving の実装は、scandecl で dataDecl をスキャンしたときだろう。 そのときに、instanceDecl も発生させればよいように思われる。 デフォルト実装は、Prim.show, Prim.eq, Prim.<= を呼び出す形でどうか。

など。Ord(や、おそらく Enum) に必要な順序も、ここでなら与えられるだろう。

2020-04-18 (Sat)

017 に対処したことで、sample138, 139 はエラーするようになっている。 そのため、それぞれ derivingshow, derivingshow2 として testcases に格下げした。

2020-05-09 (Sat)

scanDecl において、deriving Show にであったら、

instance Show Hoge where
  show = Prim.derivedShow

という宣言も生成するようにしたらよさそう。

文脈の推測については、GHCマニュアルの記述 もみよう。

2021-11-04 (Thu)

deriving Show については、078 もみよ。