ether-0.4.0.0: test/Regression/T4.hs
module Regression.T4 (test4) where
import Control.Ether.Abbr
import Control.Monad.Ether
import Test.Tasty
import Test.Tasty.QuickCheck
ethereal "RTag" "rTag"
testEther :: Ether '[RTag --> Int] m => m Int
testEther = ask rTag
runner r
= flip (runReader rTag) (r' :: Int)
. flip (runReaderT rTag) (r :: Int)
where
r' = negate r
test4 :: TestTree
test4 = testGroup "T4: Nested same-tag readers"
[ testProperty "runner works"
$ \r -> property
$ runner r testEther == r
]