Right. The key distinction here is that TR is not so much reasoning about constants, but about a singleton type. So TR is still working in terms of types, not in terms of concrete values.
Vincent On Thu, 10 Dec 2015 11:55:24 -0600, 'John Clements' via Racket Users wrote: > > > > On Dec 10, 2015, at 9:50 AM, George Neuner <[email protected]> wrote: > > > > On Thu, 10 Dec 2015 12:35:34 -0500, Alex Knauth > > <[email protected]> wrote: > > > >> In typed racket (- 1 1) and (- 2 2) are equal at runtime, but the type > >> checker doesn't necessarily know that at compile time. It knows that > >> (- 1 1) is zero because that's a special case in the type system. But it > >> doesn't have a special case for (- 2 2), so it only knows that that's a > >> Fixnum. > > > > But in this case the type checker isn't dealing with variables. Which > > begs the question why is (- 1 1) special cased? Shouldn't there be a > > general rule: (- C C) where C is a numeric constant? > > [Ok, I know equality is a problem with floating point ... but, still, > > the principle remains.] > > Check out the numeric tower in TR: there’s a type that includes just the > number 1. The natural extension to all numbers (each number has its own type) > leads (IIUC) to a totally intractable type system. > > John > > > > > George > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to [email protected]. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

