Sophie

Sophie

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

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.Applicative</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-Applicative.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>experimental</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Applicative</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Applicative functors
</a></li><li><a href="#g:2">Alternatives
</a></li><li><a href="#g:3">Instances
</a></li><li><a href="#g:4">Utility functions
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module describes a structure intermediate between a functor and
 a monad (technically, a strong lax monoidal functor).  Compared with
 monads, this interface lacks the full power of the binding operation
 <code><a href="Control-Monad.html#v:-62--62--61-">&gt;&gt;=</a></code>, but
</p><ul><li> it has more instances.
</li><li> it is sufficient for many uses, e.g. context-free parsing, or the
   <code><a href="Data-Traversable.html#t:Traversable">Traversable</a></code> class.
</li><li> instances can perform analysis of computations before they are
   executed, and thus produce shared optimizations.
</li></ul><p>This interface was introduced for parsers by Niklas R&#246;jemo, because
 it admits more sharing than the monadic interface.  The names here are
 mostly based on parsing work by Doaitse Swierstra.
</p><p>For more details, see <em>Applicative Programming with Effects</em>,
 by Conor McBride and Ross Paterson, online at
 <a href="http://www.soi.city.ac.uk/~ross/papers/Applicative.html">http://www.soi.city.ac.uk/~ross/papers/Applicative.html</a>.
</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="Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Applicative">Applicative</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:pure">pure</a> ::  a -&gt; f a</li><li><a href="#v:-60--42--62-">(&lt;*&gt;)</a> ::  f (a -&gt; b) -&gt; f a -&gt; f b</li><li><a href="#v:-42--62-">(*&gt;)</a> ::  f a -&gt; f b -&gt; f b</li><li><a href="#v:-60--42-">(&lt;*)</a> ::  f a -&gt; f b -&gt; f a</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a href="#t:Alternative">Alternative</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:empty">empty</a> ::  f a</li><li><a href="#v:-60--124--62-">(&lt;|&gt;)</a> ::  f a -&gt; f a -&gt; f a</li><li><a href="#v:some">some</a> ::  f a -&gt; f [a]</li><li><a href="#v:many">many</a> ::  f a -&gt; f [a]</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Const">Const</a> a b = <a href="#v:Const">Const</a> {<ul class="subs"><li><a href="#v:getConst">getConst</a> :: a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:WrappedMonad">WrappedMonad</a> m a = <a href="#v:WrapMonad">WrapMonad</a> {<ul class="subs"><li><a href="#v:unwrapMonad">unwrapMonad</a> :: m a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:WrappedArrow">WrappedArrow</a> a b c = <a href="#v:WrapArrow">WrapArrow</a> {<ul class="subs"><li><a href="#v:unwrapArrow">unwrapArrow</a> :: a b c</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ZipList">ZipList</a> a = <a href="#v:ZipList">ZipList</a> {<ul class="subs"><li><a href="#v:getZipList">getZipList</a> :: [a]</li></ul>}</li><li class="src short"><a href="#v:-60--36--62-">(&lt;$&gt;)</a> :: <a href="Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:-60--36-">(&lt;$)</a> :: <a href="Control-Monad.html#t:Functor">Functor</a> f =&gt; a -&gt; f b -&gt; f a</li><li class="src short"><a href="#v:-60--42--42--62-">(&lt;**&gt;)</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; f a -&gt; f (a -&gt; b) -&gt; f b</li><li class="src short"><a href="#v:liftA">liftA</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:liftA2">liftA2</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c</li><li class="src short"><a href="#v:liftA3">liftA3</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b -&gt; c -&gt; d) -&gt; f a -&gt; f b -&gt; f c -&gt; f d</li><li class="src short"><a href="#v:optional">optional</a> :: <a href="Control-Applicative.html#t:Alternative">Alternative</a> f =&gt; f a -&gt; f (<a href="Data-Maybe.html#t:Maybe">Maybe</a> a)</li></ul></div><div id="interface"><h1 id="g:1">Applicative functors
</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Monad.html#t:Functor">Functor</a> f =&gt; <a name="t:Applicative" class="def">Applicative</a> f  <span class="keyword">where</span></p><div class="doc"><p>A functor with application, providing operations to
</p><ul><li> embed pure expressions (<code><a href="Control-Applicative.html#v:pure">pure</a></code>), and
</li><li> sequence computations and combine their results (<code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code>).
</li></ul><p>A minimal complete definition must include implementations of these
 functions satisfying the following laws:
</p><dl><dt><em>identity</em></dt><dd>
      <code><code><a href="Control-Applicative.html#v:pure">pure</a></code> <code><a href="Control-Category.html#v:id">id</a></code> <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> v = v</code>
</dd><dt><em>composition</em></dt><dd>
      <code><code><a href="Control-Applicative.html#v:pure">pure</a></code> (.) <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> v <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> w = u <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> (v <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> w)</code>
</dd><dt><em>homomorphism</em></dt><dd>
      <code><code><a href="Control-Applicative.html#v:pure">pure</a></code> f <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> <code><a href="Control-Applicative.html#v:pure">pure</a></code> x = <code><a href="Control-Applicative.html#v:pure">pure</a></code> (f x)</code>
</dd><dt><em>interchange</em></dt><dd>
      <code>u <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> <code><a href="Control-Applicative.html#v:pure">pure</a></code> y = <code><a href="Control-Applicative.html#v:pure">pure</a></code> (<code><a href="Prelude.html#v:-36-">$</a></code> y) <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> u</code>
</dd></dl><p>The other methods have the following default definitions, which may
 be overridden with equivalent specialized implementations:
</p><pre>
      u <code><a href="Control-Applicative.html#v:-42--62-">*&gt;</a></code> v = <code><a href="Control-Applicative.html#v:pure">pure</a></code> (<code><a href="Prelude.html#v:const">const</a></code> <code><a href="Control-Category.html#v:id">id</a></code>) <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> v
      u <code><a href="Control-Applicative.html#v:-60--42-">&lt;*</a></code> v = <code><a href="Control-Applicative.html#v:pure">pure</a></code> <code><a href="Prelude.html#v:const">const</a></code> <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> v
</pre><p>As a consequence of these laws, the <code><a href="Control-Monad.html#t:Functor">Functor</a></code> instance for <code>f</code> will satisfy
</p><pre>
      <code><a href="Control-Monad.html#v:fmap">fmap</a></code> f x = <code><a href="Control-Applicative.html#v:pure">pure</a></code> f <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> x
</pre><p>If <code>f</code> is also a <code><a href="Control-Monad.html#t:Monad">Monad</a></code>, it should satisfy <code><code><a href="Control-Applicative.html#v:pure">pure</a></code> = <code><a href="Control-Monad.html#v:return">return</a></code></code> and
 <code>(<code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code>) = <code><a href="Control-Monad.html#v:ap">ap</a></code></code> (which implies that <code><a href="Control-Applicative.html#v:pure">pure</a></code> and <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> satisfy the
 applicative functor laws).
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:pure" class="def">pure</a> ::  a -&gt; f a</p><div class="doc"><p>Lift a value.
</p></div><p class="src"><a name="v:-60--42--62-" class="def">(&lt;*&gt;)</a> ::  f (a -&gt; b) -&gt; f a -&gt; f b</p><div class="doc"><p>Sequential application.
</p></div><p class="src"><a name="v:-42--62-" class="def">(*&gt;)</a> ::  f a -&gt; f b -&gt; f b</p><div class="doc"><p>Sequence actions, discarding the value of the first argument.
</p></div><p class="src"><a name="v:-60--42-" class="def">(&lt;*)</a> ::  f a -&gt; f b -&gt; f a</p><div class="doc"><p>Sequence actions, discarding the value of the second argument.
</p></div></div><div class="subs instances"><p id="control.i:Applicative" class="caption collapser" onclick="toggleSection('i:Applicative')">Instances</p><div id="section.i:Applicative" class="show"><table><tr><td class="src"><a href="Control-Applicative.html#t:Applicative">Applicative</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</a> Id</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Applicative.html#t:Applicative">Applicative</a> ((-&gt;) a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Applicative.html#t:Applicative">Applicative</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="Data-Monoid.html#t:Monoid">Monoid</a> a =&gt; <a href="Control-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</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.html#t:Monad">Monad</a> m =&gt; <a href="Control-Applicative.html#t:Applicative">Applicative</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="Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="Control-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</a> (StateR s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Applicative.html#t:Applicative">Applicative</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-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Alternatives
</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a name="t:Alternative" class="def">Alternative</a> f  <span class="keyword">where</span></p><div class="doc"><p>A monoid on applicative functors.
</p><p>Minimal complete definition: <code><a href="Control-Applicative.html#v:empty">empty</a></code> and <code><a href="Control-Applicative.html#v:-60--124--62-">&lt;|&gt;</a></code>.
</p><p>If defined, <code><a href="Control-Applicative.html#v:some">some</a></code> and <code><a href="Control-Applicative.html#v:many">many</a></code> should be the least solutions
 of the equations:
</p><ul><li><pre>some v = (:) <code><a href="Control-Applicative.html#v:-60--36--62-">&lt;$&gt;</a></code> v <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> many v</pre></li><li><pre>many v = some v <code><a href="Control-Applicative.html#v:-60--124--62-">&lt;|&gt;</a></code> <code><a href="Control-Applicative.html#v:pure">pure</a></code> []</pre></li></ul></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:empty" class="def">empty</a> ::  f a</p><div class="doc"><p>The identity of <code><a href="Control-Applicative.html#v:-60--124--62-">&lt;|&gt;</a></code>
</p></div><p class="src"><a name="v:-60--124--62-" class="def">(&lt;|&gt;)</a> ::  f a -&gt; f a -&gt; f a</p><div class="doc"><p>An associative binary operation
</p></div><p class="src"><a name="v:some" class="def">some</a> ::  f a -&gt; f [a]</p><div class="doc"><p>One or more.
</p></div><p class="src"><a name="v:many" class="def">many</a> ::  f a -&gt; f [a]</p><div class="doc"><p>Zero or more.
</p></div></div><div class="subs instances"><p id="control.i:Alternative" class="caption collapser" onclick="toggleSection('i:Alternative')">Instances</p><div id="section.i:Alternative" class="show"><table><tr><td class="src"><a href="Control-Applicative.html#t:Alternative">Alternative</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Applicative.html#t:Alternative">Alternative</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-Applicative.html#t:Alternative">Alternative</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.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Applicative.html#t:Alternative">Alternative</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-Arrow.html#t:ArrowZero">ArrowZero</a> a, <a href="Control-Arrow.html#t:ArrowPlus">ArrowPlus</a> a) =&gt; <a href="Control-Applicative.html#t:Alternative">Alternative</a> (<a href="Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:3">Instances
</h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Const" class="def">Const</a> a b </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Const" class="def">Const</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getConst" class="def">getConst</a> :: a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Const" class="caption collapser" onclick="toggleSection('i:Const')">Instances</p><div id="section.i:Const" class="show"><table><tr><td class="src"><a href="Control-Monad.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="Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Applicative.html#t:Const">Const</a> m)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:WrappedMonad" class="def">WrappedMonad</a> m a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WrapMonad" class="def">WrapMonad</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:unwrapMonad" class="def">unwrapMonad</a> :: m a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:WrappedMonad" class="caption collapser" onclick="toggleSection('i:WrappedMonad')">Instances</p><div id="section.i:WrappedMonad" class="show"><table><tr><td class="src"><a href="Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Monad.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.html#t:Monad">Monad</a> m =&gt; <a href="Control-Applicative.html#t:Applicative">Applicative</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.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Applicative.html#t:Alternative">Alternative</a> (<a href="Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:WrappedArrow" class="def">WrappedArrow</a> a b c </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WrapArrow" class="def">WrapArrow</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:unwrapArrow" class="def">unwrapArrow</a> :: a b c</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:WrappedArrow" class="caption collapser" onclick="toggleSection('i:WrappedArrow')">Instances</p><div id="section.i:WrappedArrow" class="show"><table><tr><td class="src"><a href="Control-Arrow.html#t:Arrow">Arrow</a> a =&gt; <a href="Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</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-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Control-Arrow.html#t:ArrowZero">ArrowZero</a> a, <a href="Control-Arrow.html#t:ArrowPlus">ArrowPlus</a> a) =&gt; <a href="Control-Applicative.html#t:Alternative">Alternative</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">newtype</span>  <a name="t:ZipList" class="def">ZipList</a> a </p><div class="doc"><p>Lists, but with an <code><a href="Control-Applicative.html#t:Applicative">Applicative</a></code> functor based on zipping, so that
</p><pre>f <code><a href="Control-Applicative.html#v:-60--36--62-">&lt;$&gt;</a></code> <code><a href="Control-Applicative.html#t:ZipList">ZipList</a></code> xs1 <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> ... <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> <code><a href="Control-Applicative.html#t:ZipList">ZipList</a></code> xsn = <code><a href="Control-Applicative.html#t:ZipList">ZipList</a></code> (zipWithn f xs1 ... xsn)</pre></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ZipList" class="def">ZipList</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getZipList" class="def">getZipList</a> :: [a]</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ZipList" class="caption collapser" onclick="toggleSection('i:ZipList')">Instances</p><div id="section.i:ZipList" class="show"><table><tr><td class="src"><a href="Control-Monad.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-Applicative.html#t:Applicative">Applicative</a> <a href="Control-Applicative.html#t:ZipList">ZipList</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:4">Utility functions
</h1><div class="top"><p class="src"><a name="v:-60--36--62-" class="def">(&lt;$&gt;)</a> :: <a href="Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</p><div class="doc"><p>An infix synonym for <code><a href="Control-Monad.html#v:fmap">fmap</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:-60--36-" class="def">(&lt;$)</a> :: <a href="Control-Monad.html#t:Functor">Functor</a> f =&gt; a -&gt; f b -&gt; f a</p><div class="doc"><p>Replace all locations in the input with the same value.
 The default definition is <code><code><a href="Control-Monad.html#v:fmap">fmap</a></code> . <code><a href="Prelude.html#v:const">const</a></code></code>, but this may be
 overridden with a more efficient version.
</p></div></div><div class="top"><p class="src"><a name="v:-60--42--42--62-" class="def">(&lt;**&gt;)</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; f a -&gt; f (a -&gt; b) -&gt; f b</p><div class="doc"><p>A variant of <code><a href="Control-Applicative.html#v:-60--42--62-">&lt;*&gt;</a></code> with the arguments reversed.
</p></div></div><div class="top"><p class="src"><a name="v:liftA" class="def">liftA</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</p><div class="doc"><p>Lift a function to actions.
 This function may be used as a value for <code><a href="Control-Monad.html#v:fmap">fmap</a></code> in a <code><a href="Control-Monad.html#t:Functor">Functor</a></code> instance.
</p></div></div><div class="top"><p class="src"><a name="v:liftA2" class="def">liftA2</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c</p><div class="doc"><p>Lift a binary function to actions.
</p></div></div><div class="top"><p class="src"><a name="v:liftA3" class="def">liftA3</a> :: <a href="Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; b -&gt; c -&gt; d) -&gt; f a -&gt; f b -&gt; f c -&gt; f d</p><div class="doc"><p>Lift a ternary function to actions.
</p></div></div><div class="top"><p class="src"><a name="v:optional" class="def">optional</a> :: <a href="Control-Applicative.html#t:Alternative">Alternative</a> f =&gt; f a -&gt; f (<a href="Data-Maybe.html#t:Maybe">Maybe</a> a)</p><div class="doc"><p>One or none.
</p></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>