scalaのvalって定義時に前方参照してもコンパイル通るけど、
実行時に例外で落ちることがあるね。
PackratParserを使って構文定義を書いてはまった。

ただ、常に落ちるわけではないのがよくわからない。
どうもval x = yみたいな単純コピーは危ないみたい。