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