TVar is:exact

Shared memory locations that support atomic memory transactions.
Shared memory locations that support atomic memory transactions.
Transactional variables, for use with MonadSTM. Deviations: There is no Eq instance for MonadSTM the TVar type. Furthermore, the newTVarIO and mkWeakTVar functions are not provided.