This file is indexed.

/usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html is in libghc-contravariant-doc 1.3.3-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Functor.Contravariant</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-Functor-Contravariant.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Functor-Contravariant.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">contravariant-1.3.3: Contravariant functors</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(C) 2007-2015 Edward Kmett</td></tr><tr><th>License</th><td>BSD-style (see the file LICENSE)</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Data.Functor.Contravariant</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Contravariant Functors</a></li><li><a href="#g:2">Operators</a></li><li><a href="#g:3">Predicates</a></li><li><a href="#g:4">Comparisons</a></li><li><a href="#g:5">Equivalence Relations</a></li><li><a href="#g:6">Dual arrows</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> functors, sometimes referred to colloquially as <code>Cofunctor</code>,
 even though the dual of a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> is just a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>. As with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>
 the definition of <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> for a given ADT is unambiguous.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Contravariant">Contravariant</a> f <span class="keyword">where</span><ul class="subs"><li><a href="#v:contramap">contramap</a> :: (a -&gt; b) -&gt; f b -&gt; f a</li><li><a href="#v:-62--36-">(&gt;$)</a> :: b -&gt; f b -&gt; f a</li></ul></li><li class="src short"><a href="#v:phantom">phantom</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f) =&gt; f a -&gt; f b</li><li class="src short"><a href="#v:-62--36--60-">(&gt;$&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; (a -&gt; b) -&gt; f b -&gt; f a</li><li class="src short"><a href="#v:-62--36--36--60-">(&gt;$$&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; f b -&gt; (a -&gt; b) -&gt; f a</li><li class="src short"><a href="#v:-36--60-">($&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; f b -&gt; b -&gt; f a</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Predicate">Predicate</a> a = <a href="#v:Predicate">Predicate</a> {<ul class="subs"><li><a href="#v:getPredicate">getPredicate</a> :: a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Comparison">Comparison</a> a = <a href="#v:Comparison">Comparison</a> {<ul class="subs"><li><a href="#v:getComparison">getComparison</a> :: a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a></li></ul>}</li><li class="src short"><a href="#v:defaultComparison">defaultComparison</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Equivalence">Equivalence</a> a = <a href="#v:Equivalence">Equivalence</a> {<ul class="subs"><li><a href="#v:getEquivalence">getEquivalence</a> :: a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><a href="#v:defaultEquivalence">defaultEquivalence</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a</li><li class="src short"><a href="#v:comparisonEquivalence">comparisonEquivalence</a> :: <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a -&gt; <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Op">Op</a> a b = <a href="#v:Op">Op</a> {<ul class="subs"><li><a href="#v:getOp">getOp</a> :: b -&gt; a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Contravariant Functors</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Contravariant" class="def">Contravariant</a> f <span class="keyword">where</span> <a href="src/Data-Functor-Contravariant.html#Contravariant" class="link">Source</a></p><div class="doc"><p>Any instance should be subject to the following laws:</p><pre>contramap id = id
contramap f . contramap g = contramap (g . f)</pre><p>Note, that the second law follows from the free theorem of the type of
 <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> and the first law, so you need only check that the former
 condition holds.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:contramap" class="def">contramap</a> :: (a -&gt; b) -&gt; f b -&gt; f a <a href="src/Data-Functor-Contravariant.html#contramap" class="link">Source</a></p><p class="src"><a name="v:-62--36-" class="def">(&gt;$)</a> :: b -&gt; f b -&gt; f a <span class="fixity">infixl 4</span><span class="rightedge"></span> <a href="src/Data-Functor-Contravariant.html#%3E%24" class="link">Source</a></p><div class="doc"><p>Replace all locations in the output with the same value.
 The default definition is <code><code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> . <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code></code>, but this may be
 overridden with a more efficient version.</p></div></div><div class="subs instances"><p id="control.i:Contravariant" class="caption collapser" onclick="toggleSection('i:Contravariant')">Instances</p><div id="section.i:Contravariant" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:V1">V1</a></span> <a href="src/Data-Functor-Contravariant.html#line-175" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:U1">U1</a></span> <a href="src/Data-Functor-Contravariant.html#line-178" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/libghc-statevar-doc/html/Data-StateVar.html#t:SettableStateVar">SettableStateVar</a></span> <a href="src/Data-Functor-Contravariant.html#line-268" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a></span> <a href="src/Data-Functor-Contravariant.html#line-344" class="link">Source</a></td><td class="doc"><p>Equivalence relations are <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code>, because you can
 apply the contramapped function to each input to the equivalence
 relation.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></span> <a href="src/Data-Functor-Contravariant.html#line-299" class="link">Source</a></td><td class="doc"><p>A <code><a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></code> is a <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> can
 apply its function argument to each input of the comparison function.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></span> <a href="src/Data-Functor-Contravariant.html#line-285" class="link">Source</a></td><td class="doc"><p>A <code><a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></code> is a <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> can
 apply its function argument to the input of the predicate.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rec1">Rec1</a> f)</span> <a href="src/Data-Functor-Contravariant.html#line-181" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Const">Const</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-252" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Proxy.html#t:Proxy">Proxy</a> *)</span> <a href="src/Data-Functor-Contravariant.html#line-274" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Reverse.html#t:Reverse">Reverse</a> f)</span> <a href="src/Data-Functor-Contravariant.html#line-263" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</span> <a href="src/Data-Functor-Contravariant.html#line-259" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m)</span> <a href="src/Data-Functor-Contravariant.html#line-214" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-List.html#t:ListT">ListT</a> m)</span> <a href="src/Data-Functor-Contravariant.html#line-211" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> f)</span> <a href="src/Data-Functor-Contravariant.html#line-208" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Constant.html#t:Constant">Constant</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-249" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-375" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:K1">K1</a> i c)</span> <a href="src/Data-Functor-Contravariant.html#line-187" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::-43-:">(:+:)</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-197" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::-42-:">(:*:)</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-190" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::.:">(:.:)</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-193" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Alt">Alt</a> * f)</span> <a href="src/Data-Functor-Contravariant.html#line-170" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Sum.html#t:Sum">Sum</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-242" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Product.html#t:Product">Product</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-246" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-255" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Writer-Strict.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Data-Functor-Contravariant.html#line-239" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Writer-Lazy.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Data-Functor-Contravariant.html#line-236" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Error.html#t:ErrorT">ErrorT</a> e m)</span> <a href="src/Data-Functor-Contravariant.html#line-202" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Except.html#t:ExceptT">ExceptT</a> e m)</span> <a href="src/Data-Functor-Contravariant.html#line-205" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-State-Strict.html#t:StateT">StateT</a> s m)</span> <a href="src/Data-Functor-Contravariant.html#line-232" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-State-Lazy.html#t:StateT">StateT</a> s m)</span> <a href="src/Data-Functor-Contravariant.html#line-228" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Reader.html#t:ReaderT">ReaderT</a> r m)</span> <a href="src/Data-Functor-Contravariant.html#line-225" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="Data-Functor-Contravariant-Compose.html#t:ComposeCF">ComposeCF</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-54" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="Data-Functor-Contravariant-Compose.html#t:ComposeFC">ComposeFC</a> f g)</span> <a href="src/Data-Functor-Contravariant.html#line-37" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:M1">M1</a> i c f)</span> <a href="src/Data-Functor-Contravariant.html#line-184" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-RWS-Strict.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Data-Functor-Contravariant.html#line-221" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-RWS-Lazy.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Data-Functor-Contravariant.html#line-217" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:phantom" class="def">phantom</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f) =&gt; f a -&gt; f b <a href="src/Data-Functor-Contravariant.html#phantom" class="link">Source</a></p><div class="doc"><p>If <code>f</code> is both <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> and <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> then by the time you factor in the laws
 of each of those classes, it can't actually use it's argument in any meaningful capacity.</p><p>This method is surprisingly useful. Where both instances exist and are lawful we have
 the following laws:</p><pre><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> f &#8801; <code><a href="Data-Functor-Contravariant.html#v:phantom">phantom</a></code>
<code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> f &#8801; <code><a href="Data-Functor-Contravariant.html#v:phantom">phantom</a></code>
</pre></div></div><h1 id="g:2">Operators</h1><div class="top"><p class="src"><a name="v:-62--36--60-" class="def">(&gt;$&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; (a -&gt; b) -&gt; f b -&gt; f a <span class="fixity">infixl 4</span><span class="rightedge"></span> <a href="src/Data-Functor-Contravariant.html#%3E%24%3C" class="link">Source</a></p><div class="doc"><p>This is an infix alias for <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code></p></div></div><div class="top"><p class="src"><a name="v:-62--36--36--60-" class="def">(&gt;$$&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; f b -&gt; (a -&gt; b) -&gt; f a <span class="fixity">infixl 4</span><span class="rightedge"></span> <a href="src/Data-Functor-Contravariant.html#%3E%24%24%3C" class="link">Source</a></p><div class="doc"><p>This is an infix version of <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> with the arguments flipped.</p></div></div><div class="top"><p class="src"><a name="v:-36--60-" class="def">($&lt;)</a> :: <a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; f b -&gt; b -&gt; f a <span class="fixity">infixl 4</span><span class="rightedge"></span> <a href="src/Data-Functor-Contravariant.html#%24%3C" class="link">Source</a></p><div class="doc"><p>This is <code><a href="Data-Functor-Contravariant.html#v:-62--36-">&gt;$</a></code> with its arguments flipped.</p></div></div><h1 id="g:3">Predicates</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Predicate" class="def">Predicate</a> a <a href="src/Data-Functor-Contravariant.html#Predicate" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Predicate" class="def">Predicate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getPredicate" class="def">getPredicate</a> :: a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Predicate" class="caption collapser" onclick="toggleSection('i:Predicate')">Instances</p><div id="section.i:Predicate" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></span> <a href="src/Data-Functor-Contravariant.html#line-285" class="link">Source</a></td><td class="doc"><p>A <code><a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></code> is a <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> can
 apply its function argument to the input of the predicate.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Decidable">Decidable</a> <a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-205" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Divisible">Divisible</a> <a href="Data-Functor-Contravariant.html#t:Predicate">Predicate</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-129" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:4">Comparisons</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Comparison" class="def">Comparison</a> a <a href="src/Data-Functor-Contravariant.html#Comparison" class="link">Source</a></p><div class="doc"><p>Defines a total ordering on a type as per <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#v:compare">compare</a></code></p><p>This condition is not checked by the types. You must ensure that the supplied
 values are valid total orderings yourself.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Comparison" class="def">Comparison</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getComparison" class="def">getComparison</a> :: a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Comparison" class="caption collapser" onclick="toggleSection('i:Comparison')">Instances</p><div id="section.i:Comparison" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></span> <a href="src/Data-Functor-Contravariant.html#line-299" class="link">Source</a></td><td class="doc"><p>A <code><a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></code> is a <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Data-Functor-Contravariant.html#v:contramap">contramap</a></code> can
 apply its function argument to each input of the comparison function.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Decidable">Decidable</a> <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-185" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Divisible">Divisible</a> <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-117" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-307" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-303" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:defaultComparison" class="def">defaultComparison</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a <a href="src/Data-Functor-Contravariant.html#defaultComparison" class="link">Source</a></p><div class="doc"><p>Compare using <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#v:compare">compare</a></code></p></div></div><h1 id="g:5">Equivalence Relations</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Equivalence" class="def">Equivalence</a> a <a href="src/Data-Functor-Contravariant.html#Equivalence" class="link">Source</a></p><div class="doc"><p>This data type represents an equivalence relation.</p><p>Equivalence relations are expected to satisfy three laws:</p><p><strong>Reflexivity</strong>:</p><pre><code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f a a = True
</pre><p><strong>Symmetry</strong>:</p><pre><code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f a b = <code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f b a
</pre><p><strong>Transitivity</strong>:</p><p>If <code><code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f a b</code> and <code><code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f b c</code> are both <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#v:True">True</a></code> then so is <code><code><a href="Data-Functor-Contravariant.html#v:getEquivalence">getEquivalence</a></code> f a c</code></p><p>The types alone do not enforce these laws, so you'll have to check them yourself.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Equivalence" class="def">Equivalence</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getEquivalence" class="def">getEquivalence</a> :: a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Equivalence" class="caption collapser" onclick="toggleSection('i:Equivalence')">Instances</p><div id="section.i:Equivalence" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a></span> <a href="src/Data-Functor-Contravariant.html#line-344" class="link">Source</a></td><td class="doc"><p>Equivalence relations are <code><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a></code>, because you can
 apply the contramapped function to each input to the equivalence
 relation.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Decidable">Decidable</a> <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-195" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant-Divisible.html#t:Divisible">Divisible</a> <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a></span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-123" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-352" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-348" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:defaultEquivalence" class="def">defaultEquivalence</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a <a href="src/Data-Functor-Contravariant.html#defaultEquivalence" class="link">Source</a></p><div class="doc"><p>Check for equivalence with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#v:-61--61-">==</a></code></p><p>Note: The instances for <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Double">Double</a></code> and <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Float">Float</a></code> violate reflexivity for <code>NaN</code>.</p></div></div><div class="top"><p class="src"><a name="v:comparisonEquivalence" class="def">comparisonEquivalence</a> :: <a href="Data-Functor-Contravariant.html#t:Comparison">Comparison</a> a -&gt; <a href="Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a> a <a href="src/Data-Functor-Contravariant.html#comparisonEquivalence" class="link">Source</a></p></div><h1 id="g:6">Dual arrows</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Op" class="def">Op</a> a b <a href="src/Data-Functor-Contravariant.html#Op" class="link">Source</a></p><div class="doc"><p>Dual function arrows.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Op" class="def">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getOp" class="def">getOp</a> :: b -&gt; a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Op" class="caption collapser" onclick="toggleSection('i:Op')">Instances</p><div id="section.i:Op" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#t:Category">Category</a> * <a href="Data-Functor-Contravariant.html#t:Op">Op</a></span> <a href="src/Data-Functor-Contravariant.html#line-371" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a)</span> <a href="src/Data-Functor-Contravariant.html#line-375" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> r =&gt; <a href="Data-Functor-Contravariant-Divisible.html#t:Decidable">Decidable</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> r)</span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-209" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> r =&gt; <a href="Data-Functor-Contravariant-Divisible.html#t:Divisible">Divisible</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> r)</span> <a href="src/Data-Functor-Contravariant-Divisible.html#line-112" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a b)</span> <a href="src/Data-Functor-Contravariant.html#line-401" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a b)</span> <a href="src/Data-Functor-Contravariant.html#line-396" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a b)</span> <a href="src/Data-Functor-Contravariant.html#line-388" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a b)</span> <a href="src/Data-Functor-Contravariant.html#line-383" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> a =&gt; <a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Data-Functor-Contravariant.html#t:Op">Op</a> a b)</span> <a href="src/Data-Functor-Contravariant.html#line-379" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>