/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 -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> a t -> <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> -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <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> -> <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>]) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s ()</li><li class="src short"><a href="#v:score">score</a> :: s -> <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 => s -> <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> -> <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) => <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</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>] -> <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) => <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -> [<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="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"> </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-">(>>=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> (a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b) -> <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-">(>>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -> <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 -> <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> -> <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"> </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 -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> <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-">(<$)</a> :: a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -> <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"> </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 -> <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-">(<*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s (a -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> <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-">(*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -> <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-">(<*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s b -> <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 -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> a t -> <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"> </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-">(>>=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> (a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b) -> <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-">(>>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -> <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 -> <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> -> <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"> </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 -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <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-">(<$)</a> :: a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -> <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"> </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 -> <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-">(<*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s (a -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <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-">(*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -> <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-">(<*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s b -> <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> -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Function">Function</a> s a -> <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> -> <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"> </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-">(>>=)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> (a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b) -> <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-">(>>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -> <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 -> <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> -> <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"> </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 -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> <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-">(<$)</a> :: a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -> <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"> </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 -> <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-">(<*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s (a -> b) -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> <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-">(*>)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -> <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-">(<*)</a> :: <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s a -> <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Implementation">Implementation</a> s b -> <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>]) -> <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 -> <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 => s -> <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> -> <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) => <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</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>] -> <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) => <a href="Language-Haskell-TH-FlexibleDefaults.html#t:Defaults">Defaults</a> s () -> [<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="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>
|