test-monad-laws-0.0.0.0: Laws for mtl classes as QuickCheck properties.

Safe HaskellNone
LanguageHaskell2010

Test.Monad.Control.Mutants

Contents

Synopsis

Documentation

mutantLiftWith :: (Monad m, MonadTransControl t) => (RunDefault (Mutant v t) t -> m a) -> Mutant v t m a Source #

mutantRestoreT :: (Monad m, MonadTransControl t) => m (StT t a) -> Mutant v t m a Source #

data LiftWithTwice Source #

An general way to get MonadTransControl wrong is to run the base computation twice when lifting...

Instances
MonadTransControl t => MonadTransControl (Mutant LiftWithTwice t) Source #

There should be no blanket OVERLAPPABLE instance because of the type family.

Instance details

Defined in Test.Monad.Control.Mutants

Associated Types

type StT (Mutant LiftWithTwice t) a :: Type #

Methods

liftWith :: Monad m => (Run (Mutant LiftWithTwice t) -> m a) -> Mutant LiftWithTwice t m a #

restoreT :: Monad m => m (StT (Mutant LiftWithTwice t) a) -> Mutant LiftWithTwice t m a #

type StT (Mutant LiftWithTwice t) a Source # 
Instance details

Defined in Test.Monad.Control.Mutants

type StT (Mutant LiftWithTwice t) a = StT t a

data RunTwice Source #

Instances
MonadTransControl t => MonadTransControl (Mutant RunTwice t) Source # 
Instance details

Defined in Test.Monad.Control.Mutants

Associated Types

type StT (Mutant RunTwice t) a :: Type #

Methods

liftWith :: Monad m => (Run (Mutant RunTwice t) -> m a) -> Mutant RunTwice t m a #

restoreT :: Monad m => m (StT (Mutant RunTwice t) a) -> Mutant RunTwice t m a #

type StT (Mutant RunTwice t) a Source # 
Instance details

Defined in Test.Monad.Control.Mutants

type StT (Mutant RunTwice t) a = StT t a

data RestoreTwice Source #

... or run it twice when restoring.

Instances
MonadTransControl t => MonadTransControl (Mutant RestoreTwice t) Source # 
Instance details

Defined in Test.Monad.Control.Mutants

Associated Types

type StT (Mutant RestoreTwice t) a :: Type #

Methods

liftWith :: Monad m => (Run (Mutant RestoreTwice t) -> m a) -> Mutant RestoreTwice t m a #

restoreT :: Monad m => m (StT (Mutant RestoreTwice t) a) -> Mutant RestoreTwice t m a #

type StT (Mutant RestoreTwice t) a Source # 
Instance details

Defined in Test.Monad.Control.Mutants

type StT (Mutant RestoreTwice t) a = StT t a

State

data RestoreDropState Source #

Instances
MonadTransControl (Mutant RestoreDropState (StateT s)) Source # 
Instance details

Defined in Test.Monad.Control.Mutants

Associated Types

type StT (Mutant RestoreDropState (StateT s)) a :: Type #

type StT (Mutant RestoreDropState (StateT s)) a Source # 
Instance details

Defined in Test.Monad.Control.Mutants