The UnsafeST module says it's all about working around [https://ghc.haskell.org/trac/ghc/ticket/5916]. That ticket has now been closed thanks to the new runRW# primop. You should probably use that when available. You should also be able to remove the -fno-full-laziness from things using that module.
Note to self: runRW# appears to have been added in base-4.10.0.0 / ghc-8.2.1, and the kinding of the result type was generalized in base-4.13.0.0 / ghc-8.8.1
The
UnsafeST
module says it's all about working around [https://ghc.haskell.org/trac/ghc/ticket/5916]. That ticket has now been closed thanks to the newrunRW#
primop. You should probably use that when available. You should also be able to remove the-fno-full-laziness
from things using that module.