This file is indexed.

/usr/share/doc/libghc-flexible-defaults-doc/html/Language-Haskell-TH-FlexibleDefaults.html is in libghc-flexible-defaults-doc 0.0.1.2-3.

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
<!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>Language.Haskell.TH.FlexibleDefaults</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Language-Haskell-TH-FlexibleDefaults.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Language-Haskell-TH-FlexibleDefaults.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">flexible-defaults-0.0.1.2: Generate default function implementations for complex type classes.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Language.Haskell.TH.FlexibleDefaults</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A code-generation system for complex typeclass default-implementation
 configurations.  There are usage examples in this package's source 
 distribution[1] and in the random-source package[2].</p><ol><li><a href="https://github.com/mokus0/flexible-defaults/tree/master/examples">https://github.com/mokus0/flexible-defaults/tree/master/examples</a></li><li><a href="https://github.com/mokus0/random-fu/blob/master/random-source/src/Data/Random/Internal/TH.hs">https://github.com/mokus0/random-fu/blob/master/random-source/src/Data/Random/Internal/TH.hs</a></li></ol></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">data</span> <a href="#t:Defaults">Defaults</a> s a</li><li class="src short"><a href="#v:scoreBy">scoreBy</a> :: (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> a t -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> b t</li><li class="src short"><span class="keyword">data</span> <a href="#t:Function">Function</a> s a</li><li class="src short"><a href="#v:function">function</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a</li><li class="src short"><a href="#v:requireFunction">requireFunction</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s ()</li><li class="src short"><span class="keyword">data</span> <a href="#t:Implementation">Implementation</a> s a</li><li class="src short"><a href="#v:implementation">implementation</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s (<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s ()</li><li class="src short"><a href="#v:score">score</a> :: s -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s ()</li><li class="src short"><a href="#v:cost">cost</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Num">Num</a> s =&gt; s -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s ()</li><li class="src short"><a href="#v:dependsOn">dependsOn</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s ()</li><li class="src short"><a href="#v:inline">inline</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s ()</li><li class="src short"><a href="#v:noinline">noinline</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s ()</li><li class="src short"><a href="#v:withDefaults">withDefaults</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> s, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ord">Ord</a> s) =&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:implementDefaults">implementDefaults</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ord">Ord</a> s, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> s) =&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Defaults" class="def">Defaults</a> s a <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#Defaults" class="link">Source</a> <a href="#t:Defaults" class="selflink">#</a></p><div class="doc"><p>A description of a system of <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a></code>s and default <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a></code>s 
 which can be used to complete a partial implementation of some type class.</p></div><div class="subs instances"><p id="control.i:Defaults" class="caption collapser" onclick="toggleSection('i:Defaults')">Instances</p><div id="section.i:Defaults" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Defaults:Monad:1" class="instance expander" onclick="toggleSection('i:id:Defaults:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-31" class="link">Source</a> <a href="#t:Defaults" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Defaults:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; (a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Defaults:Functor:2" class="instance expander" onclick="toggleSection('i:id:Defaults:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-31" class="link">Source</a> <a href="#t:Defaults" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Defaults:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Defaults:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Defaults:Applicative:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-31" class="link">Source</a> <a href="#t:Defaults" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Defaults:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:scoreBy" class="def">scoreBy</a> :: (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> a t -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> b t <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#scoreBy" class="link">Source</a> <a href="#v:scoreBy" class="selflink">#</a></p><div class="doc"><p>Map a function over all scores.  This function's name comes from the
 following idiom (where <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Sum">Sum</a></code> is replaced by whatever monoid-constructor
 you want to use to combine scores):</p><pre>foo = scoreBy Sum $ do
   ...</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Function" class="def">Function</a> s a <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#Function" class="link">Source</a> <a href="#t:Function" class="selflink">#</a></p><div class="doc"><p>A representation of a function for which one or more default
 <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a></code>s exist.  Defined using the <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:function">function</a></code> function.</p></div><div class="subs instances"><p id="control.i:Function" class="caption collapser" onclick="toggleSection('i:Function')">Instances</p><div id="section.i:Function" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Function:Monad:1" class="instance expander" onclick="toggleSection('i:id:Function:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-60" class="link">Source</a> <a href="#t:Function" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Function:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; (a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Function:Functor:2" class="instance expander" onclick="toggleSection('i:id:Function:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-60" class="link">Source</a> <a href="#t:Function" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Function:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Function:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Function:Applicative:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-60" class="link">Source</a> <a href="#t:Function" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Function:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:function" class="def">function</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#function" class="link">Source</a> <a href="#v:function" class="selflink">#</a></p><div class="doc"><p>Declare a function that must be implemented, and provide a description
 of any default implementations which can be used.</p></div></div><div class="top"><p class="src"><a id="v:requireFunction" class="def">requireFunction</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#requireFunction" class="link">Source</a> <a href="#v:requireFunction" class="selflink">#</a></p><div class="doc"><p>State that a function must be implemented but has no default implementation.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Implementation" class="def">Implementation</a> s a <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#Implementation" class="link">Source</a> <a href="#t:Implementation" class="selflink">#</a></p><div class="doc"><p>A representation of a single possible implementation of a <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a></code>.  Defined
 using the <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:implementation">implementation</a></code> function.</p></div><div class="subs instances"><p id="control.i:Implementation" class="caption collapser" onclick="toggleSection('i:Implementation')">Instances</p><div id="section.i:Implementation" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Implementation:Monad:1" class="instance expander" onclick="toggleSection('i:id:Implementation:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-81" class="link">Source</a> <a href="#t:Implementation" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Implementation:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; (a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Implementation:Functor:2" class="instance expander" onclick="toggleSection('i:id:Implementation:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-81" class="link">Source</a> <a href="#t:Implementation" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Implementation:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Implementation:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Implementation:Applicative:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s)</span> <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#line-81" class="link">Source</a> <a href="#t:Implementation" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Implementation:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s (a -&gt; b) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:implementation" class="def">implementation</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s (<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]) -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#implementation" class="link">Source</a> <a href="#v:implementation" class="selflink">#</a></p><div class="doc"><p>Describe a default implementation of the current function</p></div></div><div class="top"><p class="src"><a id="v:score" class="def">score</a> :: s -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#score" class="link">Source</a> <a href="#v:score" class="selflink">#</a></p><div class="doc"><p>Specify the score associated with the current implementation.  Only one 
 invocation of either <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:score">score</a></code> or <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:cost">cost</a></code> may be used per implementation.</p></div></div><div class="top"><p class="src"><a id="v:cost" class="def">cost</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Num">Num</a> s =&gt; s -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#cost" class="link">Source</a> <a href="#v:cost" class="selflink">#</a></p><div class="doc"><p>Specify the cost (negated score) associated with the current implementation.
 Only one invocation of either <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:score">score</a></code> or <code><a href="Language-Haskell-TH-FlexibleDefaults.html#v:cost">cost</a></code> may be used per implementation.</p></div></div><div class="top"><p class="src"><a id="v:dependsOn" class="def">dependsOn</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#dependsOn" class="link">Source</a> <a href="#v:dependsOn" class="selflink">#</a></p><div class="doc"><p>Specify that the current implementation must not be used unless the given
 function is already defined.  If this implementation can be used
 mutually-recursively with _ALL_ potential implementations of some other
 function, then a dependency need not be declared on that function.</p></div></div><div class="top"><p class="src"><a id="v:inline" class="def">inline</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#inline" class="link">Source</a> <a href="#v:inline" class="selflink">#</a></p><div class="doc"><p>Specify that an <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a></code> should be annotated with an INLINE pragma.
 Under GHC versions earlier than 6.12 this is a no-op, because those Template
 Haskell implementations do not support pragmas.</p></div></div><div class="top"><p class="src"><a id="v:noinline" class="def">noinline</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s () <a href="src/Language-Haskell-TH-FlexibleDefaults-DSL.html#noinline" class="link">Source</a> <a href="#v:noinline" class="selflink">#</a></p><div class="doc"><p>Specify that an <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a></code> should be annotated with a NOINLINE pragma.
 Under GHC versions earlier than 6.12 this is a no-op, because those Template
 Haskell implementations do not support pragmas.</p></div></div><div class="top"><p class="src"><a id="v:withDefaults" class="def">withDefaults</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> s, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ord">Ord</a> s) =&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] <a href="src/Language-Haskell-TH-FlexibleDefaults.html#withDefaults" class="link">Source</a> <a href="#v:withDefaults" class="selflink">#</a></p><div class="doc"><p>Given a <code>Q [Dec]</code> containing an instance declaration, complete that instance
 declaration using the given <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a></code> specification.  Typical usage would be
 along the lines of the following:</p><pre>$(withDefaults fooDefaults [d| instance Foo t where {- ... -} |])</pre></div></div><div class="top"><p class="src"><a id="v:implementDefaults" class="def">implementDefaults</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ord">Ord</a> s, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> s) =&gt; <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] <a href="src/Language-Haskell-TH-FlexibleDefaults.html#implementDefaults" class="link">Source</a> <a href="#v:implementDefaults" class="selflink">#</a></p><div class="doc"><p>Given a partial list of function declarations, complete that list based on
 the <code><a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a></code> specification given.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>