The logging library doesn't seem to like it when multiple logging actions are
interleaved with each other, as can happen if we use unsafeInterleaveIO.
This leads to a deadlock.
To work around this, introduce a CachedIO type so that we can explicitly
control ordering of effects and avoid such situations where logging is
interleaved.
The logging library doesn't seem to like it when multiple logging actions are interleaved with each other, as can happen if we use
unsafeInterleaveIO
. This leads to a deadlock.To work around this, introduce a
CachedIO
type so that we can explicitly control ordering of effects and avoid such situations where logging is interleaved.