On Tue, Aug 16, 2016 at 4:00 PM, Zefram <zef...@fysh.org> wrote: > That's what I think it is. I'm mystified as to what you think I think > it is. >
Because of all the behaviors central to it being the implementation of a mutable value, that you have reported as bugs. They're not bugs, they are proof that Scalar is *not what you want*. It is the implementation of a mutable value that can be used as a value; they are *not* general mutable containers which is what you are looking for. They aren't, and maybe if you look over your recent "bugs" you might recognize a pattern about their behavior that would tell you that they are not what you want them to be, they are something different and they must be something different. Let's try it this way: earlier I sai that yuou had created a mutable-key Pair. I did not mean "You created something equivalent to a mutable-key Pair". You *precisely* created a Pair that has a mutable component, in something that is not intended to be mutable. Anything that uses a Pair expects it to be immutable; your mutable-key Pair is no longer an immutable type. Arguably this situation should not be allowed to occur, but that's why .VAR is a hack that is leaking something that should not be visible. You're breaking language invariants as a result; you can slip mutability into immutable types at a level the type system can't see --- because Scalar is precisely the difference between immutable and mutable values. -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net