Side-narrowing: why didn't I thought of it before?
|@@ -809,7 +809,9 @@|
|"Returns the intersection of two Searches"|
|- (and a b (Join. a b (+ (sizehint a) (sizehint b)))))|
|+ ; if a or b is nil then the narrowed a will be nil|
|+ (when-let [a (narrow a (min-yield b))]|
|+ (Join. a b (+ (sizehint a) (sizehint b)))))|
|(deftype Narrow [a ss]|