It does sound like immutable has been conflated with packed data structures.
That seems unfortunate. It would be nice if the properties of a type could be
selected at create time rather than with specific reserved words. Something
like the following.
type Buffer <: Immutable,Packed
a::Int64
end
Though my preference would be to remove the reserved keywords all together.
Buffer = type(
a::Int64
; flags = immutable | packed
)
Which is just a function which happens to register a type and has a few named
args.
As an aside, the standard lib breaks immutability with char arrays for fast
ASCII string joins, though that usage should be safe as it is in the scope of
the allocating method.