Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
System.FS.Sim.Prim
Description
Mocked, monad transformer-based implementation of the HasFS
interface.
Synopsis
- data FSSimT m a
- runFSSimT :: FSSimT m a -> MockFS -> m (Either FsError (a, MockFS))
- primHasMockFS :: PrimMonad m => HasFS (FSSimT m) HandleMock
Documentation
Monad transformer that extends a monad m
with pure features: (i) MockFS
state, and (ii) throwing/catching FsError
s.
Instances
Monad m => MonadError FsError (FSSimT m) Source # | |
Defined in System.FS.Sim.Prim Methods throwError :: FsError -> FSSimT m a # catchError :: FSSimT m a -> (FsError -> FSSimT m a) -> FSSimT m a # | |
Monad m => MonadState MockFS (FSSimT m) Source # | |
Monad m => Applicative (FSSimT m) Source # | |
Functor m => Functor (FSSimT m) Source # | |
Monad m => Monad (FSSimT m) Source # | |
PrimMonad m => PrimMonad (FSSimT m) Source # | |
type PrimState (FSSimT m) Source # | |
primHasMockFS :: PrimMonad m => HasFS (FSSimT m) HandleMock Source #
Mocked, monad transformer-based implementation of the HasFS
interface.
This implementation is pure when running in a monad m
that is
ST
.
This implementation runs in a primitive monad m
extended with an FSSimT
monad transformer. It is recommended to use simHasFS
or
simErrorHasFS
instead because they hide the monad
transformer. The caveat is that m
should be IO-like.