Data.Vector的修改能否真正完成?

bba*_*ker 7 haskell haskell-vector

在源modify被指出该操作将在地方,如果它是安全的话来进行,并会以其他方式修改载体的拷贝.

但是看代码modify:

modify :: Vector v a => (forall s. Mutable v s a -> ST s ()) -> v a -> v a
modify p = new . New.modify p . clone
Run Code Online (Sandbox Code Playgroud)

它看起来clone总是被调用(这对我来说很有意义,因为我认为它必须是对不可变向量的破坏性操作).

我误解了吗?如果没有,那么什么是clone未调用的示例,以及如何Data.Vector完成旁路?