Fix a nasty external method edge case I introduced at some point, and add a test.
Add an experimental feature that freezes instances of immutable structs at construction time (off by default)