操作のたびに全体をコピーしないといけないので、両方向リストは効率が悪い。
IOモナドの中で操作するデータ構造にすれば別だけど。
関数的に使えて、両端からのアクセスが速いデータ構造も研究されてるらしい。
2-3 finger trees
http://www.informatik.uni-bonn.de/~ralf/publications/FingerTrees.pdf