type casting safety
Merge origin/immutable1 into immutable1