IOモナドの表現getCharが複数あってもRealWorldの値が違うので
決してノードが共有されないことに気が付かなかったんですかねえ。
グラフ書換でノードが共有されることと参照透過性との関係が
理解できてない可哀想な子だったか。