¿Cuándo `modificar` copia el vector?

Dehttps://hackage.haskell.org/package/vector-0.12.0.1/docs/Data-Vector.html#v:modify

Aplicar una operación destructiva a un vector. La operación se realizará en el lugar si es seguro hacerlo y, de lo contrario, modificará una copia del vector.

Esto parece que puede tener características de rendimiento drásticamente diferentes dependiendo de si se considera "seguro" modificar el vector en su lugar. Esto motiva las preguntas ...

¿Cuándo se realizará la modificación en su lugar y cuándo se copiará el vector? ¿Hay alguna manera de garantizar, por ejemplo, mediante el uso del sistema de tipos, queserá ser modificado en su lugar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta