Safe Haskell  None 

Language  Haskell2010 
Synopsis
 type family GTypesOf (f :: LoT Effect > Type) :: [Type] where ...
 type TypesOf (e :: Effect) = GTypesOf (RepK e)
 type family ArbitraryForAll (as :: [Type]) (m :: Type > Type) :: Constraint where ...
 data SomeAction e (r :: EffectRow) where
 SomeAction :: (Member e r, Eq a, Show a, CoArbitrary a, Show (e (Sem r) a)) => e (Sem r) a > SomeAction e r
 data SomeEff (r :: EffectRow) where
 data SomeEffOfType (r :: EffectRow) a where
 SomeEffOfType :: (Member e r, Eq a, Show a, CoArbitrary a, Show (e (Sem r) a)) => e (Sem r) a > SomeEffOfType r a
 class ArbitraryEff (es :: EffectRow) (r :: EffectRow) where
 genSomeEff :: [Gen (SomeEff r)]
 class ArbitraryEffOfType (a :: Type) (es :: EffectRow) (r :: EffectRow) where
 genSomeEffOfType :: [Gen (SomeEffOfType r a)]
 class ArbitraryAction (as :: [Type]) (e :: Effect) (r :: EffectRow) where
 genSomeAction :: [Gen (SomeAction e r)]
Documentation
type family GTypesOf (f :: LoT Effect > Type) :: [Type] where ... Source #
Helper function for implementing GTypesOf
type family ArbitraryForAll (as :: [Type]) (m :: Type > Type) :: Constraint where ... Source #
A type family that expands to a GArbitraryK
constaint for every type in
the first list.
ArbitraryForAll '[] f = ()  
ArbitraryForAll (a ': as) f = (Eq a, Show a, GArbitraryK a (RepK (f a)), ArbitraryForAll as f) 
data SomeAction e (r :: EffectRow) where Source #
is some action for effect SomeAction
e re
in effect row r
.
SomeAction  

Instances
Show (SomeAction e r) Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff showsPrec :: Int > SomeAction e r > ShowS # show :: SomeAction e r > String # showList :: [SomeAction e r] > ShowS # 
data SomeEff (r :: EffectRow) where Source #
is some action for some effect in the effect row SomeEff
rr
.
data SomeEffOfType (r :: EffectRow) a where Source #
is some action for some effect in the effect row SomeEff
rr
.
SomeEffOfType  

class ArbitraryEff (es :: EffectRow) (r :: EffectRow) where Source #
lets you randomly generate an action in any of
the effects ArbitraryEff
es res
.
genSomeEff :: [Gen (SomeEff r)] Source #
Instances
ArbitraryEff ('[] :: [Effect]) r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeEff :: [Gen (SomeEff r)] Source #  
(ArbitraryEff es r, ArbitraryAction (TypesOf e) e r) => ArbitraryEff (e ': es) r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeEff :: [Gen (SomeEff r)] Source # 
class ArbitraryEffOfType (a :: Type) (es :: EffectRow) (r :: EffectRow) where Source #
lets you randomly generate an action in any of
the effects ArbitraryEffOfType
a es res
that produces type a
.
genSomeEffOfType :: [Gen (SomeEffOfType r a)] Source #
Instances
ArbitraryEffOfType a ('[] :: [Effect]) r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeEffOfType :: [Gen (SomeEffOfType r a)] Source #  
(Eq a, Show a, Show (e (Sem r) a), ArbitraryEffOfType a es r, GenericK (e (Sem r) a), GArbitraryK a (RepK (e (Sem r) a)), CoArbitrary a, Member e r) => ArbitraryEffOfType a (e ': es) r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeEffOfType :: [Gen (SomeEffOfType r a)] Source # 
class ArbitraryAction (as :: [Type]) (e :: Effect) (r :: EffectRow) where Source #
lets you randomly generate an action
producing any type in ArbitraryAction
as e ras
from the effect e
.
genSomeAction :: [Gen (SomeAction e r)] Source #
Instances
ArbitraryAction ('[] :: [Type]) e r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeAction :: [Gen (SomeAction e r)] Source #  
(ArbitraryAction as e r, Eq a, Show a, Member e r, Show (e (Sem r) a), GenericK (e (Sem r) a), CoArbitrary a, GArbitraryK a (RepK (e (Sem r) a))) => ArbitraryAction (a ': as) e r Source #  
Defined in Polysemy.Check.Arbitrary.AnyEff genSomeAction :: [Gen (SomeAction e r)] Source # 