let union_range (p,xs) (_,ys) = match xs , ys with | [Block] , _ -> p,xs | _ , [Block] -> p,ys | [] , zs | zs , [] -> p,zs | _ -> p,List.append xs ys