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

Safe HaskellNone
LanguageHaskell2010

Test.Monad.Control.Checkers

Synopsis

Documentation

type family Replicate (n :: Nat) (xs :: [k]) :: [[k]] where ... Source #

All lists of length n or less with (possibly duplicate) elements from xs.

Equations

Replicate 0 _ = '['[]] 
Replicate n xs = Extend' xs (Replicate (n - 1) xs) 

type Extend' xs ys = ys ++ Extend xs ys Source #

type family Extend (xs :: [k]) (ys :: [[k]]) :: [[k]] where ... Source #

Equations

Extend '[] ys = '[] 
Extend (x ': xs) ys = MapCons x ys ++ Extend xs ys 

type family MapCons (x :: k) (ys :: [[k]]) :: [[k]] where ... Source #

Equations

MapCons x '[] = '[] 
MapCons x (y ': ys) = (x ': y) ': MapCons x ys 

type family (xs :: [k]) ++ (ys :: [k]) :: [k] where ... Source #

Equations

'[] ++ ys = ys 
(x ': xs) ++ ys = x ': (xs ++ ys) 

class TestControl (xs :: [[(Type -> Type) -> Type -> Type]]) (m :: Type -> Type) where Source #

Instances
TestControl ([] :: [[(Type -> Type) -> Type -> Type]]) m Source # 
Instance details

Defined in Test.Monad.Control.Checkers

(TestTransControl ts m, TestBaseControl ts m, TestControl tss m, Typeable (StackT ts m)) => TestControl (ts ': tss) m Source # 
Instance details

Defined in Test.Monad.Control.Checkers

type family StackT (ts :: [(Type -> Type) -> Type -> Type]) (m :: Type -> Type) :: Type -> Type where ... Source #

Equations

StackT '[] m = m 
StackT (t ': ts) m = t (StackT ts m) 

class TestTransControl (ts :: [(Type -> Type) -> Type -> Type]) (m :: Type -> Type) where Source #

Instances
TestTransControl ([] :: [(Type -> Type) -> Type -> Type]) m Source # 
Instance details

Defined in Test.Monad.Control.Checkers

(MonadTransControl t, Monad (StackT (t ': ts) m), Monad (StackT ts m), Constructible (StackT (t ': ts) m Int), Constructible (StackT ts m Int), TestEq (StackT (t ': ts) m Int)) => TestTransControl (t ': ts) m Source # 
Instance details

Defined in Test.Monad.Control.Checkers

class TestBaseControl (ts :: [(Type -> Type) -> Type -> Type]) (m :: Type -> Type) where Source #

Instances
(MonadBaseControl m (StackT ts m), Constructible (StackT ts m Int), Constructible (m Int), TestEq (StackT ts m Int)) => TestBaseControl ts m Source # 
Instance details

Defined in Test.Monad.Control.Checkers