Well i don't use the value in the custom hash so im not really messing up the invariant. Are you sure you'd prefer a less intuitive solution to remove a 'mutable' keyword?