fromList :: [Int] -> UF
fromList xs = foldl singleton (UF newPointSupply IM.empty) xs
fromList :: [Int] -> UF
fromList xs = foldl singleton (UF newPointSupply IM.empty) xs
fromList xs = foldl singleton (UF newPointSupply IM.empty) xs