use crateDisposable;
/// A disposal that disposes `first`, then `second`.
///
/// The front-to-back dispose order is a guarantee, not an implementation detail:
/// operators encode their semantics in it. For example, `DoBeforeDisposal` places
/// its callback in `first` to run before the source's disposal, while
/// `DoAfterDisposal` places it in `second` to run after.