[commit: packages/base] master: Tweak Haddock markup in Control.Applicative (b3307dc)
git at git.haskell.org
git at git.haskell.org
Fri Feb 21 09:44:36 UTC 2014
Repository : ssh://git@git.haskell.org/base
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/b3307dc871503ead93771b2096b819273cd129a6/base
>---------------------------------------------------------------
commit b3307dc871503ead93771b2096b819273cd129a6
Author: Herbert Valerio Riedel <hvr at gnu.org>
Date: Sun Feb 16 21:59:31 2014 +0100
Tweak Haddock markup in Control.Applicative
This (arguably) improves rendering with Haddock 2.14
Signed-off-by: Herbert Valerio Riedel <hvr at gnu.org>
>---------------------------------------------------------------
b3307dc871503ead93771b2096b819273cd129a6
Control/Applicative.hs | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/Control/Applicative.hs b/Control/Applicative.hs
index dbfa272..8f72521 100644
--- a/Control/Applicative.hs
+++ b/Control/Applicative.hs
@@ -27,9 +27,9 @@
-- it admits more sharing than the monadic interface. The names here are
-- mostly based on parsing work by Doaitse Swierstra.
--
--- For more details, see /Applicative Programming with Effects/,
--- by Conor McBride and Ross Paterson, online at
--- <http://www.soi.city.ac.uk/~ross/papers/Applicative.html>.
+-- For more details, see
+-- <http://www.soi.city.ac.uk/~ross/papers/Applicative.html Applicative Programming with Effects>,
+-- by Conor McBride and Ross Paterson.
module Control.Applicative (
-- * Applicative functors
@@ -73,34 +73,39 @@ infixl 4 <*>, <*, *>, <**>
-- functions satisfying the following laws:
--
-- [/identity/]
+--
-- @'pure' 'id' '<*>' v = v@
--
-- [/composition/]
+--
-- @'pure' (.) '<*>' u '<*>' v '<*>' w = u '<*>' (v '<*>' w)@
--
-- [/homomorphism/]
+--
-- @'pure' f '<*>' 'pure' x = 'pure' (f x)@
--
-- [/interchange/]
+--
-- @u '<*>' 'pure' y = 'pure' ('$' y) '<*>' u@
--
-- The other methods have the following default definitions, which may
-- be overridden with equivalent specialized implementations:
--
--- @
--- u '*>' v = 'pure' ('const' 'id') '<*>' u '<*>' v
--- u '<*' v = 'pure' 'const' '<*>' u '<*>' v
--- @
+-- * @u '*>' v = 'pure' ('const' 'id') '<*>' u '<*>' v@
+--
+-- * @u '<*' v = 'pure' 'const' '<*>' u '<*>' v@
--
-- As a consequence of these laws, the 'Functor' instance for @f@ will satisfy
--
--- @
--- 'fmap' f x = 'pure' f '<*>' x
--- @
+-- * @'fmap' f x = 'pure' f '<*>' x@
+--
+-- If @f@ is also a 'Monad', it should satisfy
+--
+-- * @'pure' = 'return'@
+--
+-- * @('<*>') = 'ap'@
--
--- If @f@ is also a 'Monad', it should satisfy @'pure' = 'return'@ and
--- @('<*>') = 'ap'@ (which implies that 'pure' and '<*>' satisfy the
--- applicative functor laws).
+-- (which implies that 'pure' and '<*>' satisfy the applicative functor laws).
class Functor f => Applicative f where
-- | Lift a value.
More information about the ghc-commits
mailing list