Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Operation op where
- opIdentity :: op a a
- class Operation op => InterpretOp op f where
- newtype WrapRealized m a = WrapRealized {
- unwrapRealized :: Realized m a
- intOpRealizedId :: (Realized m a ~ a, Realized m b ~ b) => (op a b -> a -> Maybe b) -> op a b -> WrapRealized m a -> Maybe (WrapRealized m b)
- intOpTransformer :: forall t m a b op. (Realized (t m) a ~ Realized m a, Realized (t m) b ~ Realized m b, InterpretOp op (WrapRealized m)) => op a b -> WrapRealized (t m) a -> Maybe (WrapRealized (t m) b)
Documentation
class Operation op where Source #
opIdentity :: op a a Source #
Instances
Operation Op Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.Identity opIdentity :: Op a a Source # | |
Operation Op Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd opIdentity :: Op a a Source # |
class Operation op => InterpretOp op f where Source #
Instances
InterpretOp Op f Source # | |
InterpretOp Op (WrapRealized IO) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized IO a -> Maybe (WrapRealized IO b) Source # | |
InterpretOp Op (WrapRealized m) => InterpretOp Op (WrapRealized (ReaderT r m)) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized (ReaderT r m) a -> Maybe (WrapRealized (ReaderT r m) b) Source # | |
InterpretOp Op (WrapRealized m) => InterpretOp Op (WrapRealized (StateT s m)) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized (StateT s m) a -> Maybe (WrapRealized (StateT s m) b) Source # |
newtype WrapRealized m a Source #
WrapRealized | |
|
Instances
InterpretOp Op (WrapRealized IO) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized IO a -> Maybe (WrapRealized IO b) Source # | |
InterpretOp Op (WrapRealized m) => InterpretOp Op (WrapRealized (ReaderT r m)) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized (ReaderT r m) a -> Maybe (WrapRealized (ReaderT r m) b) Source # | |
InterpretOp Op (WrapRealized m) => InterpretOp Op (WrapRealized (StateT s m)) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd intOp :: Op a b -> WrapRealized (StateT s m) a -> Maybe (WrapRealized (StateT s m) b) Source # |
intOpRealizedId :: (Realized m a ~ a, Realized m b ~ b) => (op a b -> a -> Maybe b) -> op a b -> WrapRealized m a -> Maybe (WrapRealized m b) Source #
Convenience function for defining InterpretOp
instances
This can be used for monads like IO
where Realized m a
is just a
.
intOpTransformer :: forall t m a b op. (Realized (t m) a ~ Realized m a, Realized (t m) b ~ Realized m b, InterpretOp op (WrapRealized m)) => op a b -> WrapRealized (t m) a -> Maybe (WrapRealized (t m) b) Source #
Convenience function for defining InterpretOp
instances for monad
transformer stacks.