deleteR :: [(Key,Weight)] -> R.PriorityQueue Int
deleteR xs = foldl' (\q k -> let (_,!q') = R.delete k q in q') pq ks
  where
    !pq = createR xs R.empty
    (ks,_) = unzip xs
deleteR :: [(Key,Weight)] -> R.PriorityQueue Int
deleteR xs = foldl' (\q k -> let (_,!q') = R.delete k q in q') pq ks
  where
    !pq = createR xs R.empty
    (ks,_) = unzip xs
deleteR xs = foldl' (\q k -> let (_,!q') = R.delete k q in q') pq ks
  where
    !pq = createR xs R.empty
    (ks,_) = unzip xs