references はコピーする
a | b | c | d のようなものは (((a | b) | c) | d) と
評価するより a | (b | (c | d)) と評価した方が、
無意味な条件の評価が行われないので高速である