Wed Feb 10 18:09:43 CET 2010
Nesting number types
It's going a bit fast.. After re-reading  a bit I see they do
stack different abstract domains. I.e. in 4.1:
type maybeValue = Val of float code
| Exp of float code
type abstract_code = Lit of float
| Any of float * maybeValue
The first one determines whether it's cheap or expensive to duplicate
a value, and the second allows operations on compile-time literals to
be evaluated away.
Compared to my approach, constant addition is not tracked, only
The concretization functions mentioned in  are what is the "show"
code in mine.
Maybe I should experiment a bit with number systems and see how they
compose; see what kind of patterns emerge.