Ответ 1
Все экземпляры Traversable
также Foldable
, поэтому вы можете написать что-то вроде
toVector :: Foldable t => t a -> Vector a
toVector = Vector.fromList . Foldable.toList
{-# INLINE toVector #-}
Это может сделать промежуточный список, хотя, если это не сгорит. Вставка должна помочь сделать слияние более вероятным.