specialized definition of liftA2 for ReaderT (#57)
authorRoss Paterson <ross@soi.city.ac.uk>
Fri, 1 Feb 2019 21:50:37 +0000 (21:50 +0000)
committerRoss Paterson <ross@soi.city.ac.uk>
Fri, 1 Feb 2019 21:50:37 +0000 (21:50 +0000)
Control/Monad/Trans/Reader.hs

index 3e371cb..25e3ad2 100644 (file)
@@ -151,6 +151,10 @@ instance (Applicative m) => Applicative (ReaderT r m) where
     u <* v = ReaderT $ \ r -> runReaderT u r <* runReaderT v r
     {-# INLINE (<*) #-}
 #endif
+#if MIN_VERSION_base(4,10,0)
+    liftA2 f x y = ReaderT $ \ r -> liftA2 f (runReaderT x r) (runReaderT y r)
+    {-# INLINE liftA2 #-}
+#endif
 
 instance (Alternative m) => Alternative (ReaderT r m) where
     empty   = liftReaderT empty