Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2224

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Monad.Instances</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Monad-Instances.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">base-4.5.1.0: Basic libraries</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr></table><p class="caption">Control.Monad.Instances</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p><code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> and <code><a href="Control-Monad-Instances.html#t:Monad">Monad</a></code> instances for <code>(-&gt;) r</code> and
 <code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> instances for <code>(,) a</code> and <code><code><a href="Data-Either.html#t:Either">Either</a></code> a</code>.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span>  <a href="#t:Functor">Functor</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:fmap">fmap</a> ::  (a -&gt; b) -&gt; f a -&gt; f b</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Monad">Monad</a> m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <span class="keyword">forall</span> a b.  m a -&gt; (a -&gt; m b) -&gt; m b</li><li><a href="#v:-62--62-">(&gt;&gt;)</a> :: <span class="keyword">forall</span> a b.  m a -&gt; m b -&gt; m b</li><li><a href="#v:return">return</a> ::  a -&gt; m a</li><li><a href="#v:fail">fail</a> ::  <a href="Data-String.html#t:String">String</a> -&gt; m a</li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Functor" class="def">Functor</a> f  <span class="keyword">where</span></p><div class="doc"><p>The <code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> class is used for types that can be mapped over.
Instances of <code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> should satisfy the following laws:
</p><pre> fmap id  ==  id
 fmap (f . g)  ==  fmap f . fmap g
</pre><p>The instances of <code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> for lists, <code><a href="Data-Maybe.html#t:Maybe">Maybe</a></code> and <code><a href="System-IO.html#t:IO">IO</a></code>
satisfy these laws.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:fmap" class="def">fmap</a> ::  (a -&gt; b) -&gt; f a -&gt; f b</p></div><div class="subs instances"><p id="control.i:Functor" class="caption collapser" onclick="toggleSection('i:Functor')">Instances</p><div id="section.i:Functor" class="show"><table><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="System-IO.html#t:IO">IO</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="Data-Maybe.html#t:Maybe">Maybe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="Text-ParserCombinators-ReadP.html#t:ReadP">ReadP</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="GHC-Conc.html#t:STM">STM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> <a href="Control-Applicative.html#t:ZipList">ZipList</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> Id</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> ((-&gt;) r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Data-Either.html#t:Either">Either</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="../ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> i =&gt; <a href="Control-Monad-Instances.html#t:Functor">Functor</a> (Array i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Control-Monad-ST-Lazy-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> m =&gt; <a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Control-Applicative.html#t:Const">Const</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (StateR s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Functor">Functor</a> (StateL s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Arrow.html#t:Arrow">Arrow</a> a =&gt; <a href="Control-Monad-Instances.html#t:Functor">Functor</a> (<a href="Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Monad" class="def">Monad</a> m  <span class="keyword">where</span></p><div class="doc"><p>The <code><a href="Control-Monad-Instances.html#t:Monad">Monad</a></code> class defines the basic operations over a <em>monad</em>,
a concept from a branch of mathematics known as <em>category theory</em>.
From the perspective of a Haskell programmer, however, it is best to
think of a monad as an <em>abstract datatype</em> of actions.
Haskell's <code>do</code> expressions provide a convenient syntax for writing
monadic expressions.
</p><p>Minimal complete definition: <code><a href="Control-Monad-Instances.html#v:-62--62--61-">&gt;&gt;=</a></code> and <code><a href="Control-Monad-Instances.html#v:return">return</a></code>.
</p><p>Instances of <code><a href="Control-Monad-Instances.html#t:Monad">Monad</a></code> should satisfy the following laws:
</p><pre> return a &gt;&gt;= k  ==  k a
 m &gt;&gt;= return  ==  m
 m &gt;&gt;= (\x -&gt; k x &gt;&gt;= h)  ==  (m &gt;&gt;= k) &gt;&gt;= h
</pre><p>Instances of both <code><a href="Control-Monad-Instances.html#t:Monad">Monad</a></code> and <code><a href="Control-Monad-Instances.html#t:Functor">Functor</a></code> should additionally satisfy the law:
</p><pre> fmap f xs  ==  xs &gt;&gt;= return . f
</pre><p>The instances of <code><a href="Control-Monad-Instances.html#t:Monad">Monad</a></code> for lists, <code><a href="Data-Maybe.html#t:Maybe">Maybe</a></code> and <code><a href="System-IO.html#t:IO">IO</a></code>
defined in the <a href="Prelude.html">Prelude</a> satisfy these laws.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:-62--62--61-" class="def">(&gt;&gt;=)</a> :: <span class="keyword">forall</span> a b.  m a -&gt; (a -&gt; m b) -&gt; m b</p><div class="doc"><p>Sequentially compose two actions, passing any value produced
 by the first as an argument to the second.
</p></div><p class="src"><a name="v:-62--62-" class="def">(&gt;&gt;)</a> :: <span class="keyword">forall</span> a b.  m a -&gt; m b -&gt; m b</p><div class="doc"><p>Sequentially compose two actions, discarding any value produced
 by the first, like sequencing operators (such as the semicolon)
 in imperative languages.
</p></div><p class="src"><a name="v:return" class="def">return</a> ::  a -&gt; m a</p><div class="doc"><p>Inject a value into the monadic type.
</p></div><p class="src"><a name="v:fail" class="def">fail</a> ::  <a href="Data-String.html#t:String">String</a> -&gt; m a</p><div class="doc"><p>Fail with a message.  This operation is not part of the
 mathematical definition of a monad, but is invoked on pattern-match
 failure in a <code>do</code> expression.
</p></div></div><div class="subs instances"><p id="control.i:Monad" class="caption collapser" onclick="toggleSection('i:Monad')">Instances</p><div id="section.i:Monad" class="show"><table><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> <a href="System-IO.html#t:IO">IO</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> <a href="Data-Maybe.html#t:Maybe">Maybe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> <a href="Text-ParserCombinators-ReadP.html#t:ReadP">ReadP</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> P</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> <a href="GHC-Conc.html#t:STM">STM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> ((-&gt;) r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> (<a href="Data-Either.html#t:Either">Either</a> e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> (<a href="Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Arrow.html#t:ArrowApply">ArrowApply</a> a =&gt; <a href="Control-Monad-Instances.html#t:Monad">Monad</a> (<a href="Control-Arrow.html#t:ArrowMonad">ArrowMonad</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Monad-Instances.html#t:Monad">Monad</a> (<a href="Control-Monad-ST-Lazy-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>