Safe Haskell | Safe-Inferred |
---|---|

Language | Haskell2010 |

- identity :: (Eq (f a), Monad m, Show (f a), Applicative f) => Series m (f a) -> Property m
- composition :: (Eq (f b), Monad m, Show (f c), Show (f (a -> b)), Show (f (c -> a)), Applicative f) => Series m (f (c -> a)) -> Series m (f c) -> Series m (f (a -> b)) -> Property m
- compositionSum :: (Eq (f b), Monad m, Show (f c), Show (f (a -> b)), Show (f (c -> a)), Applicative f) => Series m (f (c -> a)) -> Series m (f c) -> Series m (f (a -> b)) -> Property m
- homomorphism :: forall m f a b. (Monad m, Applicative f, Eq b, Eq (f b), Show a, Show b, Serial Identity a, Serial Identity b) => Proxy f -> Series m a -> Series m (a -> b) -> Property m
- homomorphismSum :: forall m f a b. (Monad m, Applicative f, Eq b, Eq (f b), Show a, Show b, Serial Identity a, Serial Identity b) => Proxy f -> Series m a -> Series m (a -> b) -> Property m
- interchange :: (Eq (f b), Monad m, Show a, Show (f (a -> b)), Applicative f) => Series m a -> Series m (f (a -> b)) -> Property m
- interchangeSum :: (Eq (f b), Monad m, Show a, Show (f (a -> b)), Applicative f) => Series m a -> Series m (f (a -> b)) -> Property m

# Applicative laws

identity :: (Eq (f a), Monad m, Show (f a), Applicative f) => Series m (f a) -> Property m Source

Check the *identity* law hold for the given `Applicative`

`Series`

:

`pure`

id`<*>`

v ≡ v

composition :: (Eq (f b), Monad m, Show (f c), Show (f (a -> b)), Show (f (c -> a)), Applicative f) => Series m (f (c -> a)) -> Series m (f c) -> Series m (f (a -> b)) -> Property m Source

compositionSum :: (Eq (f b), Monad m, Show (f c), Show (f (a -> b)), Show (f (c -> a)), Applicative f) => Series m (f (c -> a)) -> Series m (f c) -> Series m (f (a -> b)) -> Property m Source

homomorphism :: forall m f a b. (Monad m, Applicative f, Eq b, Eq (f b), Show a, Show b, Serial Identity a, Serial Identity b) => Proxy f -> Series m a -> Series m (a -> b) -> Property m Source

homomorphismSum :: forall m f a b. (Monad m, Applicative f, Eq b, Eq (f b), Show a, Show b, Serial Identity a, Serial Identity b) => Proxy f -> Series m a -> Series m (a -> b) -> Property m Source

interchange :: (Eq (f b), Monad m, Show a, Show (f (a -> b)), Applicative f) => Series m a -> Series m (f (a -> b)) -> Property m Source