Mark S. Miller (2013-07-17T16:20:11.000Z)
domenic at domenicdenicola.com (2013-07-24T00:09:12.428Z)
On Wed, Jul 17, 2013 at 9:11 AM, Brendan Eich <brendan at mozilla.com> wrote: >>> Users do not want more wrappers, e.g., Uint64 for uint64. No use-case is served by such beasts. >>> >>> You might argue that "total cognitive load" is lower, but I reply that since wrappers are almost completely unobservable and not used explicitly, the load of having two types, symbol/Symbol, bignum/Bignum, etc., is strictly higher. > > I'm hoping you agree here! I do. But the direction we're going does have a complexity cost. All new "types" of things, whether symbols or bignums or whatever, should be new object types, where we introduce a further distinction between "value" objects (need a better word) which are immutable and compare based on contents (bignums) vs unique objects which compare based on unforgeable EQness identity. Curiously, symbols are unforgeable, and so are in the latter camp. I am uncomfortable expanding the typeof namespace. Where do these new names come from, and how do we avoid collision?