let intersect u v = let l = max u.lo v.lo in let h = min u.hi v.hi in if l <= h then Some {lo=l; hi=h} else None