Probably not a considerable performance boost, but you could cache the value from `extract(...)` so it doesn't need to recalculate it later...

And, actually, maybe this whole function could be written just as: `return extract(left) - extract(right);`, since comparator functions doesn't expect `-1 | 0 | 1` but actually: `0` or any other value greater or less than zero... :wink: