valに対する永続データ構造を追加