on master help sign in
Remove some proxies
3ff1a3fIndex Int
src/Control/Monad/Ether/Reader.hs+4−4
@@ -45,14 +45,14 @@ class MonadEther m => MonadEtherReader tag r m | m tag -> r where
45
45
46type MonadReader' r = MonadEtherReader r r
46type MonadReader' r = MonadEtherReader r r
47
47
48−local' :: MonadReader' r m => proxy r -> (r -> r) -> m a -> m a
48+local' :: MonadReader' r m => (r -> r) -> m a -> m a
49−local' = etherLocal
49+local' (f :: r -> r) = etherLocal (Proxy :: Proxy r) f
50
50
51ask' :: MonadReader' r m => proxy r -> m r
51ask' :: MonadReader' r m => proxy r -> m r
52ask' = etherAsk
52ask' = etherAsk
53
53
54−reader' :: MonadReader' r m => proxy r -> (r -> a) -> m a
54+reader' :: MonadReader' r m => (r -> a) -> m a
55−reader' = etherReader
55+reader' (f :: r -> a) = etherReader (Proxy :: Proxy r) f
56
56
57instance {-# OVERLAPPING #-} (Monad m, EtherTagless tag m)
57instance {-# OVERLAPPING #-} (Monad m, EtherTagless tag m)
58 => MonadEtherReader tag r (EtherReaderT tag r m) where
58 => MonadEtherReader tag r (EtherReaderT tag r m) where
test/Regression.hs+2−2
@@ -61,7 +61,7 @@ layeredLocalCore' k f a1 a2 = (direct, indirect)
61 indirect = layeredLocalCore (apply f) (\n m -> apply k (fromIntegral n, m))
61 indirect = layeredLocalCore (apply f) (\n m -> apply k (fromIntegral n, m))
62
62
63inferCore :: (MonadReader' Int m, MonadReader' Bool m) => m String
63inferCore :: (MonadReader' Int m, MonadReader' Bool m) => m String
64−inferCore = infer local' (succ :: Int -> Int) $ do
64+inferCore = local' (succ :: Int -> Int) $ do
65 n :: Int <- infer ask'
65 n :: Int <- infer ask'
66− b <- infer local' not (infer ask')
66+ b <- local' not (infer ask')
67 return (if b then "" else show n)
67 return (if b then "" else show n)