immutableにするとスレッドセーフになるのは分かる
代入ができなくても別に困らない、というのも分かる

分からないのは遅延評価
原則的にはeagerにして必要なときだけ明示的に遅延するのでは駄目な例ってないすか