Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.QuickCheck.StateModel.Lockstep.Op
Synopsis
- class Operation (op :: Type -> Type -> Type) where
- opIdentity :: op a a
- class Operation op => InterpretOp (op :: Type -> Type -> Type) (f :: Type -> Type) where
- newtype WrapRealized (m :: Type -> Type) a = WrapRealized {
- unwrapRealized :: Realized m a
- intOpRealizedId :: forall (m :: Type -> Type) a b op. (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 :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) 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 :: Type -> Type -> Type) where Source #
Methods
opIdentity :: op a a Source #
Instances
Operation Op Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.Identity Methods opIdentity :: Op a a Source # | |
Operation Op Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd Methods opIdentity :: Op a a Source # |
class Operation op => InterpretOp (op :: Type -> Type -> Type) (f :: Type -> Type) where Source #
Instances
InterpretOp Op f Source # | |
InterpretOp Op (WrapRealized IO) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd Methods 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 Methods 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 Methods intOp :: Op a b -> WrapRealized (StateT s m) a -> Maybe (WrapRealized (StateT s m) b) Source # |
newtype WrapRealized (m :: Type -> Type) a Source #
Constructors
WrapRealized | |
Fields
|
Instances
InterpretOp Op (WrapRealized IO) Source # | |
Defined in Test.QuickCheck.StateModel.Lockstep.Op.SumProd Methods 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 Methods 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 Methods intOp :: Op a b -> WrapRealized (StateT s m) a -> Maybe (WrapRealized (StateT s m) b) Source # |
intOpRealizedId :: forall (m :: Type -> Type) a b op. (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 :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) 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.