/ merge overlapping intervals h:{(&~(!#x)!2)_ x} g:{@[x;(*y)+!-/|y;:;1]} f:{h@&0(~=)':g/[&1+*|,/x;x]} (1 6;8 10;15 18)~f(1 3;2 6;8 10;15 18) (,1 5)~f(1 4;4 5)