Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 188

ghc-doc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Control.Applicative</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Control-Applicative.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>base-4.1.0.0: Basic libraries</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Control.Applicative</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>libraries@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Applicative functors
</A
></DT
><DT
><A HREF="#2"
>Alternatives
</A
></DT
><DT
><A HREF="#3"
>Instances
</A
></DT
><DT
><A HREF="#4"
>Utility functions
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>This module describes a structure intermediate between a functor and
 a monad: it provides pure expressions and sequencing, but no binding.
 (Technically, a strong lax monoidal functor.)  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
><P
>This interface was introduced for parsers by Niklas R&#xf6;jemo, because
 it admits more sharing than the monadic interface.  The names here are
 mostly based on recent parsing work by Doaitse Swierstra.
</P
><P
>This class is also useful with instances of the
 Data.Traversable.Traversable class.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; <A HREF="#t%3AApplicative"
>Applicative</A
> f  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Apure"
>pure</A
> ::  a -&gt; f a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%2A%3E"
>(&lt;*&gt;)</A
> ::  f (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; <A HREF="#t%3AAlternative"
>Alternative</A
> f  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Aempty"
>empty</A
> ::  f a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%7C%3E"
>(&lt;|&gt;)</A
> ::  f a -&gt; f a -&gt; f a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AConst"
>Const</A
> a b = <A HREF="#v%3AConst"
>Const</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetConst"
>getConst</A
> :: a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AWrappedMonad"
>WrappedMonad</A
> m a = <A HREF="#v%3AWrapMonad"
>WrapMonad</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AunwrapMonad"
>unwrapMonad</A
> :: m a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AWrappedArrow"
>WrappedArrow</A
> a b c = <A HREF="#v%3AWrapArrow"
>WrapArrow</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AunwrapArrow"
>unwrapArrow</A
> :: a b c</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AZipList"
>ZipList</A
> a = <A HREF="#v%3AZipList"
>ZipList</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetZipList"
>getZipList</A
> :: [a]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%24%3E"
>(&lt;$&gt;)</A
> :: <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%24"
>(&lt;$)</A
> :: <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; a -&gt; f b -&gt; f a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2A%3E"
>(*&gt;)</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f b -&gt; f b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%2A"
>(&lt;*)</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f b -&gt; f a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%2A%2A%3E"
>(&lt;**&gt;)</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f (a -&gt; b) -&gt; f b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AliftA"
>liftA</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AliftA2"
>liftA2</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AliftA3"
>liftA3</A
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b -&gt; c -&gt; d) -&gt; f a -&gt; f b -&gt; f c -&gt; f d</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aoptional"
>optional</A
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f (<A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asome"
>some</A
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amany"
>many</A
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f [a]</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Applicative functors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; <A NAME="t:Applicative"
><A NAME="t%3AApplicative"
></A
></A
><B
>Applicative</B
> f  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A functor with application.
</P
><P
>Instances should satisfy the following laws:
</P
><DL
><DT
><EM
>identity</EM
></DT
><DD
>
      <TT
><TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> <TT
><A HREF="Control-Category.html#v%3Aid"
>id</A
></TT
> <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> v = v</TT
>
</DD
><DT
><EM
>composition</EM
></DT
><DD
>
      <TT
><TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> (.) <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> u <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> v <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> w = u <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> (v <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> w)</TT
>
</DD
><DT
><EM
>homomorphism</EM
></DT
><DD
>
      <TT
><TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> f <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> <TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> x = <TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> (f x)</TT
>
</DD
><DT
><EM
>interchange</EM
></DT
><DD
>
      <TT
>u <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> <TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> y = <TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> (<TT
><A HREF="Prelude.html#v%3A%24"
>$</A
></TT
> y) <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> u</TT
>
</DD
></DL
><P
>The <TT
><A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
></TT
> instance should satisfy
</P
><PRE
>
      <TT
><A HREF="Control-Monad.html#v%3Afmap"
>fmap</A
></TT
> f x = <TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> f <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> x
</PRE
><P
>If <TT
>f</TT
> is also a <TT
><A HREF="Control-Monad.html#t%3AMonad"
>Monad</A
></TT
>, define <TT
><TT
><A HREF="Control-Applicative.html#v%3Apure"
>pure</A
></TT
> = <TT
><A HREF="Control-Monad.html#v%3Areturn"
>return</A
></TT
></TT
> and <TT
>(<TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
>) = <TT
><A HREF="Control-Monad.html#v%3Aap"
>ap</A
></TT
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:pure"
><A NAME="v%3Apure"
></A
></A
><B
>pure</B
> ::  a -&gt; f a</TD
></TR
><TR
><TD CLASS="doc"
>Lift a value.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<*>"
><A NAME="v%3A%3C%2A%3E"
></A
></A
><B
>(&lt;*&gt;)</B
> ::  f (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
><TR
><TD CLASS="doc"
>Sequential application.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Applicative')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Applicative" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> []</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="System-IO.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> Id</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> ((-&gt;) a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Monoid.html#t%3AMonoid"
>Monoid</A
> a =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Monoid.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AConst"
>Const</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (StateR s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (StateL s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow.html#t%3AArrow"
>Arrow</A
> a =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Alternatives
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; <A NAME="t:Alternative"
><A NAME="t%3AAlternative"
></A
></A
><B
>Alternative</B
> f  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A monoid on applicative functors.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:empty"
><A NAME="v%3Aempty"
></A
></A
><B
>empty</B
> ::  f a</TD
></TR
><TR
><TD CLASS="doc"
>The identity of <TT
><A HREF="Control-Applicative.html#v%3A%3C%7C%3E"
>&lt;|&gt;</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<|>"
><A NAME="v%3A%3C%7C%3E"
></A
></A
><B
>(&lt;|&gt;)</B
> ::  f a -&gt; f a -&gt; f a</TD
></TR
><TR
><TD CLASS="doc"
>An associative binary operation
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Alternative')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Alternative" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> []</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonadPlus"
>MonadPlus</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Control-Arrow.html#t%3AArrowZero"
>ArrowZero</A
> a, <A HREF="Control-Arrow.html#t%3AArrowPlus"
>ArrowPlus</A
> a) =&gt; <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Instances
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Const"
><A NAME="t%3AConst"
></A
></A
><B
>Const</B
> a b </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Const"
><A NAME="v%3AConst"
></A
></A
><B
>Const</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:getConst"
><A NAME="v%3AgetConst"
></A
></A
><B
>getConst</B
> :: a</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Const')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Const" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AConst"
>Const</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Monoid.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AConst"
>Const</A
> m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:WrappedMonad"
><A NAME="t%3AWrappedMonad"
></A
></A
><B
>WrappedMonad</B
> m a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:WrapMonad"
><A NAME="v%3AWrapMonad"
></A
></A
><B
>WrapMonad</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:unwrapMonad"
><A NAME="v%3AunwrapMonad"
></A
></A
><B
>unwrapMonad</B
> :: m a</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:WrappedMonad')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:WrappedMonad" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonadPlus"
>MonadPlus</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:WrappedArrow"
><A NAME="t%3AWrappedArrow"
></A
></A
><B
>WrappedArrow</B
> a b c </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:WrapArrow"
><A NAME="v%3AWrapArrow"
></A
></A
><B
>WrapArrow</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:unwrapArrow"
><A NAME="v%3AunwrapArrow"
></A
></A
><B
>unwrapArrow</B
> :: a b c</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:WrappedArrow')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:WrappedArrow" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow.html#t%3AArrow"
>Arrow</A
> a =&gt; <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Control-Arrow.html#t%3AArrowZero"
>ArrowZero</A
> a, <A HREF="Control-Arrow.html#t%3AArrowPlus"
>ArrowPlus</A
> a) =&gt; <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow.html#t%3AArrow"
>Arrow</A
> a =&gt; <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:ZipList"
><A NAME="t%3AZipList"
></A
></A
><B
>ZipList</B
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Lists, but with an <TT
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
></TT
> functor based on zipping, so that
</P
><PRE
>f <TT
><A HREF="Control-Applicative.html#v%3A%3C%24%3E"
>&lt;$&gt;</A
></TT
> <TT
><A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TT
> xs1 <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> ... <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> <TT
><A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TT
> xsn = <TT
><A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TT
> (zipWithn f xs1 ... xsn)</PRE
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ZipList"
><A NAME="v%3AZipList"
></A
></A
><B
>ZipList</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:getZipList"
><A NAME="v%3AgetZipList"
></A
></A
><B
>getZipList</B
> :: [a]</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ZipList')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ZipList" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Utility functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<$>"
><A NAME="v%3A%3C%24%3E"
></A
></A
><B
>(&lt;$&gt;)</B
> :: <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
><TR
><TD CLASS="doc"
>A synonym for <TT
><A HREF="Control-Monad.html#v%3Afmap"
>fmap</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<$"
><A NAME="v%3A%3C%24"
></A
></A
><B
>(&lt;$)</B
> :: <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> f =&gt; a -&gt; f b -&gt; f a</TD
></TR
><TR
><TD CLASS="doc"
>Replace the value.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:*>"
><A NAME="v%3A%2A%3E"
></A
></A
><B
>(*&gt;)</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f b -&gt; f b</TD
></TR
><TR
><TD CLASS="doc"
>Sequence actions, discarding the value of the first argument.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<*"
><A NAME="v%3A%3C%2A"
></A
></A
><B
>(&lt;*)</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f b -&gt; f a</TD
></TR
><TR
><TD CLASS="doc"
>Sequence actions, discarding the value of the second argument.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<**>"
><A NAME="v%3A%3C%2A%2A%3E"
></A
></A
><B
>(&lt;**&gt;)</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; f a -&gt; f (a -&gt; b) -&gt; f b</TD
></TR
><TR
><TD CLASS="doc"
>A variant of <TT
><A HREF="Control-Applicative.html#v%3A%3C%2A%3E"
>&lt;*&gt;</A
></TT
> with the arguments reversed.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftA"
><A NAME="v%3AliftA"
></A
></A
><B
>liftA</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
><TR
><TD CLASS="doc"
>Lift a function to actions.
 This function may be used as a value for <TT
><A HREF="Control-Monad.html#v%3Afmap"
>fmap</A
></TT
> in a <TT
><A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftA2"
><A NAME="v%3AliftA2"
></A
></A
><B
>liftA2</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c</TD
></TR
><TR
><TD CLASS="doc"
>Lift a binary function to actions.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftA3"
><A NAME="v%3AliftA3"
></A
></A
><B
>liftA3</B
> :: <A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> f =&gt; (a -&gt; b -&gt; c -&gt; d) -&gt; f a -&gt; f b -&gt; f c -&gt; f d</TD
></TR
><TR
><TD CLASS="doc"
>Lift a ternary function to actions.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:optional"
><A NAME="v%3Aoptional"
></A
></A
><B
>optional</B
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f (<A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="doc"
>One or none.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:some"
><A NAME="v%3Asome"
></A
></A
><B
>some</B
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f [a]</TD
></TR
><TR
><TD CLASS="doc"
>One or more.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:many"
><A NAME="v%3Amany"
></A
></A
><B
>many</B
> :: <A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> f =&gt; f a -&gt; f [a]</TD
></TR
><TR
><TD CLASS="doc"
>Zero or more.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>