Many changes for 1.1.
() Added stateful iterators. These aren't really any faster than converting
to a list, but they do cons less on large collections. GMap arg types now
use the stateful iterators. Added GMap arg- and result-types `:map' and
`:bag-pairs', using the multiple-value features in GMap 3.3 (Misc-Extensions
1.1). Added GMap arg-type `:sequence' for completely generic iteration.
() Incompatible change: the macro `do-bag', which does map-style iteration,
has been renamed to `do-bag-pairs'; the new `do-bag' does set-style
() Incompatible change: `map-merge' has been renamed to `map-union'.
() Implemented `some' and friends; added `nonempty' and `map-intersection'.
() Added historically-related-trees optimization for some set, bag, and map
operations. Now, if you take one of these collections, perform a small
number of point changes on it (adding or removing a single element or pair),
and apply an operation that supports this optimization to the original
collection and the result, the operation will run in log time rather than
linear time. Currently, the supported operations are: `subset?', `union',
`intersection', `set-difference', `map-union', and `map-intersection'; and
`compare' on sets, bags, maps, and seqs.
() The print methods didn't support `*print-level*' portably.
() The `compare' methods for lists and vectors were wrong in the presence of
equivalent-but-unequal elements. Also, for lists, we no longer compare
lengths first, because `length' on a list takes linear time, and because we
now support dotted lists.
() `pop-first' and `pop-last' were very wrong (they did not return the value
() `insert' wasn't sufficiently validating its arguments; also, the
implementation had a bug.
() There was a bug in `compare' on seqs.