add example documentation for tuple Applicative
authorGinBaby <jdog74@gmail.com>
Mon, 6 Mar 2017 18:43:57 +0000 (13:43 -0500)
committerBen Gamari <ben@smart-cactus.org>
Mon, 6 Mar 2017 22:23:01 +0000 (17:23 -0500)
Reviewers: austin, hvr, bgamari, dfeuer

Reviewed By: dfeuer

Subscribers: dfeuer, thomie

Differential Revision: https://phabricator.haskell.org/D3284

libraries/base/Control/Applicative.hs
libraries/base/GHC/Base.hs

index 8883818..406f086 100644 (file)
@@ -106,7 +106,7 @@ instance (ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b) where
 newtype ZipList a = ZipList { getZipList :: [a] }
                   deriving ( Show, Eq, Ord, Read, Functor
                            , Foldable, Generic, Generic1)
--- See Data.Traversable for Traversabel instance due to import loops
+-- See Data.Traversable for Traversable instance due to import loops
 
 -- | @since 2.01
 instance Applicative ZipList where
index e07c077..2f155c6 100644 (file)
@@ -327,7 +327,14 @@ instance Monoid a => Monoid (Maybe a) where
   m `mappend` Nothing = m
   Just m1 `mappend` Just m2 = Just (m1 `mappend` m2)
 
--- | @since 2.01
+-- | For tuples, the 'Monoid' constraint on @a@ determines
+-- how the first values merge.
+-- For example, 'String's concatenate:
+--
+-- > ("hello ", (+15)) <*> ("world!", 2002)
+-- > ("hello world!",2017)
+--
+-- @since 2.01
 instance Monoid a => Applicative ((,) a) where
     pure x = (mempty, x)
     (u, f) <*> (v, x) = (u `mappend` v, f x)