Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > cc201a8f34d9a2062cf8346490d8eefd > files > 24

ghc-semigroups-devel-0.8-1.fc14.i686.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
>Data.Semigroup</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_Data-Semigroup.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"
>semigroups-0.8: Haskell 98 semigroups</TD
><TD CLASS="topbut"
><A HREF="src/Data-Semigroup.html"
>Source code</A
></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"
>Data.Semigroup</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"
>provisional</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Edward Kmett &lt;ekmett@gmail.com&gt;</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"
>Semigroups
</A
></DT
><DT
><A HREF="#2"
>Re-exported monoids from Data.Monoid 
</A
></DT
><DT
><A HREF="#3"
>A better monoid for Maybe
</A
></DT
><DT
><A HREF="#4"
>Difference lists of a semigroup
</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
>In mathematics, a semigroup is an algebraic structure consisting of a 
 set together with an associative binary operation. A semigroup 
 generalizes a monoid in that there might not exist an identity 
 element. It also (originally) generalized a group (a monoid with all 
 inverses) to a type where every element did not have to have an inverse, 
 thus the name semigroup.
</P
><P
>The use of (<A HREF=""
></A
>) in this module conflicts with an operator with the same
 name that is being exported by Data.Monoid. However, this package 
 re-exports (most of) the contents of Data.Monoid, so to use semigroups
 and monoids in the same package just
</P
><PRE
> import Data.Semigroup
</PRE
></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="#t%3ASemigroup"
>Semigroup</A
> a  <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%3A%3C%3E"
>(&lt;&gt;)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asconcat"
>sconcat</A
> :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty"
>NonEmpty</A
> a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atimes1p"
>times1p</A
> :: <A HREF="Numeric-Natural-Internal.html#t%3AWhole"
>Whole</A
> n =&gt; n -&gt; a -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AMin"
>Min</A
> a = <A HREF="#v%3AMin"
>Min</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetMin"
>getMin</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%3AMax"
>Max</A
> a = <A HREF="#v%3AMax"
>Max</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetMax"
>getMax</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%3AFirst"
>First</A
> a = <A HREF="#v%3AFirst"
>First</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetFirst"
>getFirst</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%3ALast"
>Last</A
> a = <A HREF="#v%3ALast"
>Last</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetLast"
>getLast</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%3AWrappedMonoid"
>WrappedMonoid</A
> m = <A HREF="#v%3AWrapMonoid"
>WrapMonoid</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AunwrapMonoid"
>unwrapMonoid</A
> :: m</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AMonoid"
>Monoid</A
> a  <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%3Amempty"
>mempty</A
> :: a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amappend"
>mappend</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amconcat"
>mconcat</A
> :: [a] -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3ADual"
>Dual</A
> a = <A HREF="#v%3ADual"
>Dual</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetDual"
>getDual</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%3AEndo"
>Endo</A
> a = <A HREF="#v%3AEndo"
>Endo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AappEndo"
>appEndo</A
> :: a -&gt; a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AAll"
>All</A
>  = <A HREF="#v%3AAll"
>All</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetAll"
>getAll</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AAny"
>Any</A
>  = <A HREF="#v%3AAny"
>Any</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetAny"
>getAny</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3ASum"
>Sum</A
> a = <A HREF="#v%3ASum"
>Sum</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetSum"
>getSum</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%3AProduct"
>Product</A
> a = <A HREF="#v%3AProduct"
>Product</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetProduct"
>getProduct</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%3AOption"
>Option</A
> a = <A HREF="#v%3AOption"
>Option</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgetOption"
>getOption</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aoption"
>option</A
> ::  b -&gt; (a -&gt; b) -&gt; <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adiff"
>diff</A
> :: <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> m =&gt; m -&gt; <A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> m</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acycle1"
>cycle1</A
> :: <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> m =&gt; m -&gt; m</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Documentation</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Semigroup"
><A NAME="t%3ASemigroup"
></A
></A
><B
>Semigroup</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#Semigroup"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><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="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:<>"
><A NAME="v%3A%3C%3E"
></A
></A
><B
>(&lt;&gt;)</B
> :: a -&gt; a -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#%3C%3E"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>An associative operation. 
</P
><PRE
> (a &lt;&gt; b) &lt;&gt; c = a &lt;&gt; (b &lt;&gt; c)
</PRE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:sconcat"
><A NAME="v%3Asconcat"
></A
></A
><B
>sconcat</B
> :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty"
>NonEmpty</A
> a -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#sconcat"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Reduce a non-empty list with <TT
>&lt;&gt;</TT
>
</P
><P
>The default definition should be sufficient, but this can be overridden for efficiency.
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:times1p"
><A NAME="v%3Atimes1p"
></A
></A
><B
>times1p</B
> :: <A HREF="Numeric-Natural-Internal.html#t%3AWhole"
>Whole</A
> n =&gt; n -&gt; a -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#times1p"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Repeat a value (n + 1) times.
</P
><PRE
> times1p n a = a &lt;&gt; a &lt;&gt; ... &lt;&gt; a  -- using &lt;&gt; n times
</PRE
><P
>The default definition uses peasant multiplication, exploiting associativity to only
 require <EM
>O(log n)</EM
> uses of <TT
>&lt;&gt;</TT
>.
</P
></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:Semigroup')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Semigroup" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> ()</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> <A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntSet.html#t%3AIntSet"
>IntSet</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntMap.html#t%3AIntMap"
>IntMap</A
> v)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Set.html#t%3ASet"
>Set</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Sequence.html#t%3ASeq"
>Seq</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty"
>NonEmpty</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> b =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (a -&gt; b)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> b) =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (a, b)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> k =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap"
>Map</A
> k v)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> b, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> c) =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (a, b, c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> b, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> c, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> d) =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (a, b, c, d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> b, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> c, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> d, <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> e) =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (a, b, c, d, e)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Semigroups
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Min"
><A NAME="t%3AMin"
></A
></A
><B
>Min</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#Min"
>Source</A
></TD
></TR
></TABLE
></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:Min"
><A NAME="v%3AMin"
></A
></A
><B
>Min</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:getMin"
><A NAME="v%3AgetMin"
></A
></A
><B
>getMin</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:Min')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Min" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Max"
><A NAME="t%3AMax"
></A
></A
><B
>Max</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#Max"
>Source</A
></TD
></TR
></TABLE
></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:Max"
><A NAME="v%3AMax"
></A
></A
><B
>Max</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:getMax"
><A NAME="v%3AgetMax"
></A
></A
><B
>getMax</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:Max')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Max" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:First"
><A NAME="t%3AFirst"
></A
></A
><B
>First</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#First"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Use <TT
><TT
><A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TT
> (<TT
><A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
></TT
> a)</TT
> -- to get the behavior of Data.Monoid.First
</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:First"
><A NAME="v%3AFirst"
></A
></A
><B
>First</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:getFirst"
><A NAME="v%3AgetFirst"
></A
></A
><B
>getFirst</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:First')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:First" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AFirst"
>First</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Last"
><A NAME="t%3ALast"
></A
></A
><B
>Last</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#Last"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Use <TT
><TT
><A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TT
> (<TT
><A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
></TT
> a)</TT
> -- to get the behavior of Data.Monoid.Last
</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:Last"
><A NAME="v%3ALast"
></A
></A
><B
>Last</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:getLast"
><A NAME="v%3AgetLast"
></A
></A
><B
>getLast</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:Last')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Last" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ALast"
>Last</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:WrappedMonoid"
><A NAME="t%3AWrappedMonoid"
></A
></A
><B
>WrappedMonoid</B
> m </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#WrappedMonoid"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Provide a Semigroup for an arbitrary Monoid.
</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:WrapMonoid"
><A NAME="v%3AWrapMonoid"
></A
></A
><B
>WrapMonoid</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:unwrapMonoid"
><A NAME="v%3AunwrapMonoid"
></A
></A
><B
>unwrapMonoid</B
> :: m</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:WrappedMonoid')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:WrappedMonoid" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> m =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</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"
>Re-exported monoids from Data.Monoid 
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Monoid"
><A NAME="t%3AMonoid"
></A
></A
><B
>Monoid</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Monoid"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The class of monoids (types with an associative binary operation that
 has an identity).  Instances should satisfy the following laws:
</P
><UL
><LI
><TT
>mappend mempty x = x</TT
></LI
><LI
><TT
>mappend x mempty = x</TT
></LI
><LI
><TT
>mappend x (mappend y z) = mappend (mappend x y) z</TT
></LI
><LI
><TT
>mconcat = <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-List.html#v%3Afoldr"
>foldr</A
></TT
> mappend mempty</TT
></LI
></UL
><P
>The method names refer to the monoid of lists under concatenation,
 but there are many other instances.
</P
><P
>Minimal complete definition: <TT
><A HREF="Data-Semigroup.html#v%3Amempty"
>mempty</A
></TT
> and <TT
><A HREF="Data-Semigroup.html#v%3Amappend"
>mappend</A
></TT
>.
</P
><P
>Some types can be viewed as a monoid in more than one way,
 e.g. both addition and multiplication on numbers.
 In such cases we often define <TT
>newtype</TT
>s and make those instances
 of <TT
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
></TT
>, e.g. <TT
><A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
></TT
> and <TT
><A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
></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="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mempty"
><A NAME="v%3Amempty"
></A
></A
><B
>mempty</B
> :: a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#mempty"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Identity of <TT
><A HREF="Data-Semigroup.html#v%3Amappend"
>mappend</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mappend"
><A NAME="v%3Amappend"
></A
></A
><B
>mappend</B
> :: a -&gt; a -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#mappend"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>An associative operation
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mconcat"
><A NAME="v%3Amconcat"
></A
></A
><B
>mconcat</B
> :: [a] -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#mconcat"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Fold a list using the monoid.
 For most types, the default definition for <TT
><A HREF="Data-Semigroup.html#v%3Amconcat"
>mconcat</A
></TT
> will be
 used, but the function is included in the class definition so
 that an optimized version can be provided for specific types.
</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:Monoid')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Monoid" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> ()</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntSet.html#t%3AIntSet"
>IntSet</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntMap.html#t%3AIntMap"
>IntMap</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Set.html#t%3ASet"
>Set</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Sequence.html#t%3ASeq"
>Seq</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> m =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AWrappedMonoid"
>WrappedMonoid</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AMax"
>Max</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AMin"
>Min</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> b =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (a -&gt; b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> b) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (a, b)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> k =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap"
>Map</A
> k v)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> b, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> c) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (a, b, c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> b, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> c, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> d) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (a, b, c, d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> b, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> c, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> d, <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> e) =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (a, b, c, d, e)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Dual"
><A NAME="t%3ADual"
></A
></A
><B
>Dual</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Dual"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The dual of a monoid, obtained by swapping the arguments of <TT
><A HREF="Data-Semigroup.html#v%3Amappend"
>mappend</A
></TT
>.
</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:Dual"
><A NAME="v%3ADual"
></A
></A
><B
>Dual</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:getDual"
><A NAME="v%3AgetDual"
></A
></A
><B
>getDual</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:Dual')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Dual" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ADual"
>Dual</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Endo"
><A NAME="t%3AEndo"
></A
></A
><B
>Endo</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Endo"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The monoid of endomorphisms under composition.
</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:Endo"
><A NAME="v%3AEndo"
></A
></A
><B
>Endo</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:appEndo"
><A NAME="v%3AappEndo"
></A
></A
><B
>appEndo</B
> :: a -&gt; 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:Endo')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Endo" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:All"
><A NAME="t%3AAll"
></A
></A
><B
>All</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#All"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Boolean monoid under conjunction.
</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:All"
><A NAME="v%3AAll"
></A
></A
><B
>All</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:getAll"
><A NAME="v%3AgetAll"
></A
></A
><B
>getAll</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</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:All')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:All" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> <A HREF="Data-Semigroup.html#t%3AAll"
>All</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Any"
><A NAME="t%3AAny"
></A
></A
><B
>Any</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Any"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Boolean monoid under disjunction.
</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:Any"
><A NAME="v%3AAny"
></A
></A
><B
>Any</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:getAny"
><A NAME="v%3AgetAny"
></A
></A
><B
>getAny</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</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:Any')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Any" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> <A HREF="Data-Semigroup.html#t%3AAny"
>Any</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Sum"
><A NAME="t%3ASum"
></A
></A
><B
>Sum</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Sum"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Monoid under addition.
</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:Sum"
><A NAME="v%3ASum"
></A
></A
><B
>Sum</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:getSum"
><A NAME="v%3AgetSum"
></A
></A
><B
>getSum</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:Sum')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Sum" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3ASum"
>Sum</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Product"
><A NAME="t%3AProduct"
></A
></A
><B
>Product</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Monoid.html#Product"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Monoid under multiplication.
</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:Product"
><A NAME="v%3AProduct"
></A
></A
><B
>Product</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:getProduct"
><A NAME="v%3AgetProduct"
></A
></A
><B
>getProduct</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:Product')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Product" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AProduct"
>Product</A
> a)</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"
>A better monoid for Maybe
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Option"
><A NAME="t%3AOption"
></A
></A
><B
>Option</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#Option"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Option is effectively <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TT
> with a better instance of <TT
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
></TT
>, built off of an underlying <TT
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
></TT
>
 instead of an underlying <TT
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
></TT
>. Ideally, this type would not exist at all and we would just fix the <TT
><A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
></TT
> intance of <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TT
>
</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:Option"
><A NAME="v%3AOption"
></A
></A
><B
>Option</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:getOption"
><A NAME="v%3AgetOption"
></A
></A
><B
>getOption</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> 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:Option')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Option" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad-Fix.html#t%3AMonadFix"
>MonadFix</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonadPlus"
>MonadPlus</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable"
>Foldable</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Traversable.html#t%3ATraversable"
>Traversable</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Applicative.html#t%3AAlternative"
>Alternative</A
> <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> a =&gt; <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> (<A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:option"
><A NAME="v%3Aoption"
></A
></A
><B
>option</B
> ::  b -&gt; (a -&gt; b) -&gt; <A HREF="Data-Semigroup.html#t%3AOption"
>Option</A
> a -&gt; b</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#option"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Difference lists of a semigroup
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:diff"
><A NAME="v%3Adiff"
></A
></A
><B
>diff</B
> :: <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> m =&gt; m -&gt; <A HREF="Data-Semigroup.html#t%3AEndo"
>Endo</A
> m</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#diff"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>This lets you use a difference list of a Semigroup as a Monoid.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:cycle1"
><A NAME="v%3Acycle1"
></A
></A
><B
>cycle1</B
> :: <A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
> m =&gt; m -&gt; m</TD
><TD CLASS="declbut"
><A HREF="src/Data-Semigroup.html#cycle1"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>A generalization of Data.List.cycle to an arbitrary <TT
><A HREF="Data-Semigroup.html#t%3ASemigroup"
>Semigroup</A
></TT
>.
 May fail to terminate for some values in some semigroups.
</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.6.1</TD
></TR
></TABLE
></BODY
></HTML
>