If the variant -> math edge is removed, we get this:
http://www.steveire.com/boost/june-15-serialization-no-variant-math.png http://www.steveire.com/boost/june-15-serialization-no-variant-math.dot
which is already a significant improvement. There may be more low hanging fruit remaining.
Variant depends on math for a single metafunction.
boost::math::static_lcm
Can something be changed to make Variant not depend on Math?
Before we start reimplementing functionality: 1) There was talk of moving the compile-time-integer functionality out of Math and into Integer. 2) At some point I will probably try and re-factor Math into smaller chunks, but... * Not until after the release, and, * I want to see where this is going: at present any potential usefulness to all this modularization is frankly vaporware. I realize there is a chicken-and-egg situation here, but until we have some user-focused tools for handling dependencies it's not clear to me at least what the best/optimal form of refactoring actually is. And I only want to do it once ;-) My suggestion would be to park issues and possible solutions on the Wiki until we get the release out? John.