TArray is a transactional array, supporting the usual MArray
interface for mutable arrays.
It is currently implemented as Array ix (TVar e),
but it may be replaced by a more efficient implementation in the future
(the interface will remain the same, however).