Also read http://groups.google.ca/group/comp.lang.ada/browse_thread/thread/4c06e1e4fc2bf2d1 -- Ludovic Brenta.