@@ -9,6 +9,7 @@ import Control.Monad.Primitive (PrimMonad, PrimState, RealWorld)
99import qualified Data.Vector as V
1010import qualified Data.Vector.Unboxed as VU
1111import qualified Data.Vector.Unboxed.Mutable as VUM
12+ import GHC.Stack (HasCallStack )
1213import System.FS.API
1314import qualified System.FS.BlockIO.API as API
1415import System.FS.BlockIO.API (IOOp (.. ), IOResult (.. ), LockMode (.. ))
@@ -55,7 +56,7 @@ serialHasBlockIO hSetNoCache hAdvise hAllocate tryLockFile hSynchronise synchron
5556data IOCtx m = IOCtx { ctxFS :: SomeHasFS m , openVar :: MVar m Bool }
5657
5758{-# SPECIALISE guardIsOpen :: IOCtx IO -> IO () #-}
58- guardIsOpen :: (MonadMVar m , MonadThrow m ) => IOCtx m -> m ()
59+ guardIsOpen :: (HasCallStack , MonadMVar m , MonadThrow m ) => IOCtx m -> m ()
5960guardIsOpen ctx = readMVar (openVar ctx) >>= \ b ->
6061 unless b $ throwIO (API. mkClosedError (ctxFS ctx) " submitIO" )
6162
@@ -72,7 +73,7 @@ close ctx = modifyMVar_ (openVar ctx) $ const (pure False)
7273 -> IOCtx IO -> V.Vector (IOOp RealWorld h)
7374 -> IO (VU.Vector IOResult) #-}
7475submitIO ::
75- (MonadMVar m , MonadThrow m , PrimMonad m )
76+ (HasCallStack , MonadMVar m , MonadThrow m , PrimMonad m )
7677 => HasFS m h
7778 -> IOCtx m
7879 -> V. Vector (IOOp (PrimState m ) h )
0 commit comments