This is a long-waited-for (I hope) rewrite of the venerable Set::Scalar module. The original 0.00x series culminated in 0.003 back in May 1996, the 0.004 in October 1998 was just a minor update. The most egregious problem with the old implementation was that having complex things such as objects as set members (for example if sets of sets were wanted) didn't really work. While this new implementation is more correct, it may be also slower. Some operations are certainly slower, but some are faster. It all depends on your mix of operations. Displaying sets is not as versatile as with the old implementation, but then on the other hand I doubt (hope) that anybody ever used the overly baroque interface anyway. If, however, I am wrong in this, please let me know, I'll think of something. The old interface should not be revived as such, I think, it was far too clunky. The "valued sets" concept is now moved to its own subclass, Set::Scalar::Valued. (There are two meta-classes, Set::Scalar::Universe and Set::Scalar::ValuedUniverse, but do not use them overmuch, as there are still some rough edges that may change in future releases. Do not use them directly (by instantiating them yourself, for example), $set->universe is about the only method that works and will continue to work. Even more internal-use-only are the Set::Scalar::Real and Set::Scalar::Virtual. Do not try to use them directly. Their interfaces are left undocumented on purpose.) The "inverted sets" concept is history, removed, gone, not to return. You can just use -$set. Let me know what you think, did I miss anything obvious? Any old functionality that I didn't purposefully/accidentally migrate to the new one? Could the documentation be better? (a rhetorical question) Any new functionality you would like to see? (Please don't say that you want the Cartesian product: it's a concept from wholly different world, the ordered sets. My sets are unordered.) -- Jarkko Hietaniemi