Range_union_find: a data structure for storing ranges

I created a library for storing a union of ranges, which is at GitHub - rlee287/range_union_find: A union-find data structure for ranges and is also published on crates.io (at https://crates.io/crates/range_union_find). I'd like to get any feedback you may have in general, but I'm also looking for specific feedback on the following:

  • Public API: I would like declare API stability (such that I could theoretically release v1.0.0 but for the fact that num-traits in the public API is still in v0.*.*), but only after fixing API design issues that may be present
  • Extending the range union to store ranges of other types, with possible ideas below:
    • Supporting non-NaN floating-point seems like the next logical step, but I can't think of an easy way to easily normalize floating-point ranges to an equivalent one that includes both ends (which I currently rely on as an implementation detail)
    • std::iter::Step, which is only implemented for integer types and which is a nightly-only trait anyway