Make compatible with upcoming base-4.13
authorhvr <hvr@gnu.org>
Wed, 19 Dec 2018 09:56:30 +0000 (09:56 +0000)
committerhvr <hvr@gnu.org>
Wed, 19 Dec 2018 09:56:30 +0000 (09:56 +0000)
See also https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail

16 files changed:
Control/Monad/Trans/Accum.hs
Control/Monad/Trans/Error.hs
Control/Monad/Trans/Except.hs
Control/Monad/Trans/Identity.hs
Control/Monad/Trans/List.hs
Control/Monad/Trans/Maybe.hs
Control/Monad/Trans/RWS/CPS.hs
Control/Monad/Trans/RWS/Lazy.hs
Control/Monad/Trans/RWS/Strict.hs
Control/Monad/Trans/Reader.hs
Control/Monad/Trans/State/Lazy.hs
Control/Monad/Trans/State/Strict.hs
Control/Monad/Trans/Writer/CPS.hs
Control/Monad/Trans/Writer/Lazy.hs
Control/Monad/Trans/Writer/Strict.hs
Data/Functor/Reverse.hs

index b1ec83d..0a85c43 100644 (file)
@@ -192,8 +192,10 @@ instance (Monoid w, Functor m, Monad m) => Monad (AccumT w m) where
         ~(b, w'') <- runAccumT (k a) (w `mappend` w')
         return (b, w' `mappend` w'')
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = AccumT $ const (fail msg)
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (AccumT w m) where
index f50b051..6eda4b3 100644 (file)
@@ -238,7 +238,9 @@ instance (Monad m, Error e) => Monad (ErrorT e m) where
         case a of
             Left  l -> return (Left l)
             Right r -> runErrorT (k r)
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = ErrorT $ return (Left (strMsg msg))
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monad m, Error e) => Fail.MonadFail (ErrorT e m) where
index a8da580..f4cfff9 100644 (file)
@@ -220,8 +220,10 @@ instance (Monad m) => Monad (ExceptT e m) where
             Left e -> return (Left e)
             Right x -> runExceptT (k x)
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail = ExceptT . fail
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (ExceptT e m) where
index 81d0c21..2a0db5e 100644 (file)
@@ -124,8 +124,10 @@ instance (Monad m) => Monad (IdentityT m) where
 #endif
     m >>= k = IdentityT $ runIdentityT . k =<< runIdentityT m
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = IdentityT $ fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (IdentityT m) where
index 6af4b10..3cde4ce 100644 (file)
@@ -123,8 +123,10 @@ instance (Monad m) => Monad (ListT m) where
         b <- mapM (runListT . k) a
         return (concat b)
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail _ = ListT $ return []
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monad m) => Fail.MonadFail (ListT m) where
index 997a4c0..f02b225 100644 (file)
@@ -167,8 +167,10 @@ instance (Monad m) => Monad (MaybeT m) where
             Nothing -> return Nothing
             Just y  -> runMaybeT (f y)
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail _ = MaybeT (return Nothing)
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monad m) => Fail.MonadFail (MaybeT m) where
index 2d0de40..8a565e1 100644 (file)
@@ -233,8 +233,10 @@ instance (Monad m) => Monad (RWST r w s m) where
         unRWST (k a) r s' w'
     {-# INLINE (>>=) #-}
 
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = RWST $ \ _ _ _ -> fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (RWST r w s m) where
index 55e0dc4..8f98b2c 100644 (file)
@@ -205,8 +205,10 @@ instance (Monoid w, Monad m) => Monad (RWST r w s m) where
         ~(b, s'',w') <- runRWST (k a) r s'
         return (b, s'', w `mappend` w')
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = RWST $ \ _ _ -> fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (RWST r w s m) where
index 069490e..557dd20 100644 (file)
@@ -208,8 +208,10 @@ instance (Monoid w, Monad m) => Monad (RWST r w s m) where
         (b, s'',w') <- runRWST (k a) r s'
         return (b, s'', w `mappend` w')
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = RWST $ \ _ _ -> fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (RWST r w s m) where
index c8304e1..3e371cb 100644 (file)
@@ -173,8 +173,10 @@ instance (Monad m) => Monad (ReaderT r m) where
     m >> k = ReaderT $ \ r -> runReaderT m r >> runReaderT k r
 #endif
     {-# INLINE (>>) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = lift (fail msg)
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (ReaderT r m) where
index e719f02..d7cdde5 100644 (file)
@@ -227,8 +227,10 @@ instance (Monad m) => Monad (StateT s m) where
         ~(a, s') <- runStateT m s
         runStateT (k a) s'
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail str = StateT $ \ _ -> fail str
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (StateT s m) where
index 31fd52a..d0fb58e 100644 (file)
@@ -224,8 +224,10 @@ instance (Monad m) => Monad (StateT s m) where
         (a, s') <- runStateT m s
         runStateT (k a) s'
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail str = StateT $ \ _ -> fail str
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (StateT s m) where
index 24fda67..2895101 100644 (file)
@@ -183,8 +183,10 @@ instance (Monad m) => Monad (WriterT w m) where
         unWriterT (k a) w'
     {-# INLINE (>>=) #-}
 
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = WriterT $ \ _ -> fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (WriterT w m) where
index 3faeb3a..d12b0e7 100644 (file)
@@ -204,8 +204,10 @@ instance (Monoid w, Monad m) => Monad (WriterT w m) where
         ~(b, w') <- runWriterT (k a)
         return (b, w `mappend` w')
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = WriterT $ fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (WriterT w m) where
index 16b0fbf..f39862c 100644 (file)
@@ -207,8 +207,10 @@ instance (Monoid w, Monad m) => Monad (WriterT w m) where
         (b, w') <- runWriterT (k a)
         return (b, w `mappend` w')
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = WriterT $ fail msg
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (WriterT w m) where
index dcb6290..5d8c41f 100644 (file)
@@ -94,8 +94,10 @@ instance (Monad m) => Monad (Reverse m) where
 #endif
     m >>= f = Reverse (getReverse m >>= getReverse . f)
     {-# INLINE (>>=) #-}
+#if !(MIN_VERSION_base(4,13,0))
     fail msg = Reverse (fail msg)
     {-# INLINE fail #-}
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 instance (Fail.MonadFail m) => Fail.MonadFail (Reverse m) where