@@ -6,8 +6,12 @@
6{-# LANGUAGE ScopedTypeVariables #-}
6{-# LANGUAGE ScopedTypeVariables #-}
7module Main where
7module Main where
9import Control.Ether.TH
11import Control.Ether.TH
12+import Control.Ether.Wrapped
10import Control.Monad.Ether.Reader
13import Control.Monad.Ether.Reader
14+import Control.Monad.Reader
12import Test.Tasty
16import Test.Tasty
13import Test.Tasty.QuickCheck
17import Test.Tasty.QuickCheck
@@ -16,6 +20,9 @@ import Test.QuickCheck.Function
16ethereal (defaultEtherealReaderConfig "Reader1")
20ethereal (defaultEtherealReaderConfig "Reader1")
17ethereal (defaultEtherealReaderConfig "Reader2")
21ethereal (defaultEtherealReaderConfig "Reader2")
23+r1 :: Proxy TagReader1
19main :: IO ()
26main :: IO ()
20main = defaultMain suite
27main = defaultMain suite
@@ -65,3 +72,6 @@ inferCore = local' (succ :: Int -> Int) $ do
65 n :: Int <- ask'
72 n :: Int <- ask'
66 b <- local' not ask'
73 b <- local' not ask'
67 return (if b then "" else show n)
74 return (if b then "" else show n)
76+wrapCore :: MonadEtherReader TagReader1 Int m => m Int
77+wrapCore = ethered r1 ask