I&#x27;m not sure that&#x27;s possible. If the first thread isn&#x27;t explicitly synchronizing the memory, it won&#x27;t even detect when the map was changed (made thread-safe) by the second thread!<p>A half-solution could be using very lightweight synchronization (e.g. a MVar containing an unsynchronized map) that&#x27;s later converted as you describe, but it would still incur <i>some</i> cynchronization overhead (even for single-threaded use).