graft-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Effect.THTests

Description

This module only exists to test the TemplateHaskell in Fixpoint.TH

Documentation

data Foo (m :: Type -> Type) a where Source #

Constructors

Foo :: ((m a -> b) -> m c) -> Foo m c 

Instances

Instances details
((), MonadFoo m) => InterpretEffect m Foo Source # 
Instance details

Defined in Effect.THTests

Methods

interpretEffect :: forall (ops :: [Effect]) a. (forall b. AST ops b -> m b) -> Foo (AST ops) a -> m a Source #

class Monad m => MonadFoo m where Source #

Methods

foo :: ((m a -> b) -> m c) -> m c Source #

Instances

Instances details
((), EffectInject Foo ops) => MonadFoo (AST ops) Source # 
Instance details

Defined in Effect.THTests

Methods

foo :: ((AST ops a -> b) -> AST ops c) -> AST ops c Source #

interpretFoo :: MonadFoo m => (forall b. AST ops b -> m b) -> Foo (AST ops) a -> m a Source #

data Bar m a where Source #

Constructors

Bar :: (((a -> m b) -> c) -> d) -> Bar m c 

Instances

Instances details
((), MonadBar m) => InterpretEffect m Bar Source # 
Instance details

Defined in Effect.THTests

Methods

interpretEffect :: forall (ops :: [Effect]) a. (forall b. AST ops b -> m b) -> Bar (AST ops) a -> m a Source #

class Monad m => MonadBar m where Source #

Methods

bar :: (((a -> m b) -> c) -> d) -> m c Source #

Instances

Instances details
((), EffectInject Bar ops) => MonadBar (AST ops) Source # 
Instance details

Defined in Effect.THTests

Methods

bar :: (((a -> AST ops b) -> c) -> d) -> AST ops c Source #

data Baz m a where Source #

Constructors

Baz :: ((m a -> b) -> m c) -> Baz m c 

Instances

Instances details
((), MonadBaz m) => InterpretEffect m Baz Source # 
Instance details

Defined in Effect.THTests

Methods

interpretEffect :: forall (ops :: [Effect]) a. (forall b. AST ops b -> m b) -> Baz (AST ops) a -> m a Source #

class Monad m => MonadBaz m where Source #

Methods

baz :: ((m a -> b) -> m c) -> m c Source #

Instances

Instances details
((), EffectInject Baz ops) => MonadBaz (AST ops) Source # 
Instance details

Defined in Effect.THTests

Methods

baz :: ((AST ops a -> b) -> AST ops c) -> AST ops c Source #

data Quux m a where Source #

Constructors

Quux :: Either (IO x, (m a, Bool)) [b -> m a] -> Quux m a 

Instances

Instances details
((), MonadQuux m) => InterpretEffect m Quux Source # 
Instance details

Defined in Effect.THTests

Methods

interpretEffect :: forall (ops :: [Effect]) a. (forall b. AST ops b -> m b) -> Quux (AST ops) a -> m a Source #

class Monad m => MonadQuux m where Source #

Methods

quux :: Either (IO x, (m a, Bool)) [b -> m a] -> m a Source #

Instances

Instances details
((), EffectInject Quux ops) => MonadQuux (AST ops) Source # 
Instance details

Defined in Effect.THTests

Methods

quux :: Either (IO x, (AST ops a, Bool)) [b -> AST ops a] -> AST ops a Source #