Yield an immutable copy of the underlying mutable vector. The
difference from
dequeToVector is that the the copy will be
performed with a more efficient
memcpy, rather than element
by element. The downside is that the resulting vector type must be the
one that corresponds to the mutable one that is used in the
Deque.
Example
>>> :set -XTypeApplications
>>> import qualified RIO.Vector.Unboxed as U
>>> d <- newDeque @U.MVector @Int
>>> mapM_ (pushFrontDeque d) [0..10]
>>> freezeDeque @U.Vector d
[10,9,8,7,6,5,4,3,2,1,0]