( Scala Advent Calendar 2014 の 11 日目です ) 動機 trait で表現されたデータ構造から JSON や XML へ変換するコードを自動生成したい つまり trait からフィールドの名前とその型情報だけ抜き出したい しかしマクロやリフレクションに依存したライブラリは書きたくない 将来いつ変わるか分からない! 歴史的には Manifest から TypeTag への変更といった実例あり 変わったときのライブラリの書き直しはしんどい だとしたら型情報だけ取り出してくれる中間層を用意すればいいのでは その中間層が Scala の内部実装を隠蔽してくれればいい! 実例 たとえば下記のようなデータ構造を表現した trait に対して package example trait SampleStructure { def x: Int def y: SampleG