おおむね……
この記事の追試みたいなものです.
Psych 3.x
再帰な定義をしてみた.
> require 'yaml'
=> true
" YAML.load(<<~EOL)
" a: &a
" b:
" <<: *a
> EOL
=> {"a"=>{"b"=>{}}}
" YAML.load(<<~EOL, freeze: true)
" a: &a
" b:
" <<: *a
> EOL
FrozenError: can't modify frozen Hash: {}
from psych-3.3.2/lib/psych/visitors/to_ruby.rb:375:in `block in revive_hash'