フィールドラベルの更新

フィールドラベルを持つ data 型の更新の文法がなんかださく感じます。

updateFoo g v = g { fooField = v }

ラベルをパラメータ化できたら便利なのになあ。

update g f v = g { f = v }

でもこれ、参照透明性を失うかな?よく考えてないけど。