This file is indexed.

/usr/share/doc/libghc-diagrams-lib-doc/html/Diagrams-Parametric.html is in libghc-diagrams-lib-doc 0.7.1.1-1build2.

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
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!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>Diagrams.Parametric</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_Diagrams-Parametric.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Diagrams-Parametric.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">diagrams-lib-0.7.1.1: Embedded domain-specific language for declarative graphics</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Maintainer</th><td>diagrams-discuss@googlegroups.com</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Diagrams.Parametric</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Parametric functions
</a></li><li><a href="#g:2">Adjusting
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Type classes for things which are parameterized in some way, <em>e.g.</em>
 segments and trails.
</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"><a href="#v:stdTolerance">stdTolerance</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a =&gt; a</li><li class="src short"><span class="keyword">type family</span> <a href="#t:Codomain">Codomain</a> p :: *</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Parametric">Parametric</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:atParam">atParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:DomainBounds">DomainBounds</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:domainLower">domainLower</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:domainUpper">domainUpper</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li></ul></li><li class="src short"><span class="keyword">class</span> (<a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p, <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p) =&gt; <a href="#t:EndValues">EndValues</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:atStart">atStart</a> :: p -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li><li><a href="#v:atEnd">atEnd</a> :: p -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p =&gt; <a href="#t:Sectionable">Sectionable</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:splitAtParam">splitAtParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; (p, p)</li><li><a href="#v:section">section</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p</li><li><a href="#v:reverseDomain">reverseDomain</a> :: p -&gt; p</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p =&gt; <a href="#t:HasArcLength">HasArcLength</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:arcLengthBounded">arcLengthBounded</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-intervals-doc/html/Numeric-Interval.html#t:Interval">Interval</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p))</li><li><a href="#v:arcLength">arcLength</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:stdArcLength">stdArcLength</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:arcLengthToParam">arcLengthToParam</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li><li><a href="#v:stdArcLengthToParam">stdArcLengthToParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)</li></ul></li><li class="src short"><a href="#v:adjust">adjust</a> :: (<a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a, <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a))) =&gt; a -&gt; <a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) -&gt; a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:AdjustOpts">AdjustOpts</a> v = <a href="#v:AO">AO</a> {<ul class="subs"><li><a href="#v:adjMethod">adjMethod</a> :: <a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v</li><li><a href="#v:adjSide">adjSide</a> :: <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></li><li><a href="#v:adjEps">adjEps</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v</li><li><a href="#v:adjOptsvProxy__">adjOptsvProxy__</a> :: <a href="Diagrams-Util.html#t:Proxy">Proxy</a> v</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:AdjustMethod">AdjustMethod</a> v<ul class="subs"><li>= <a href="#v:ByParam">ByParam</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)  </li><li>| <a href="#v:ByAbsolute">ByAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)  </li><li>| <a href="#v:ToAbsolute">ToAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:AdjustSide">AdjustSide</a> <ul class="subs"><li>= <a href="#v:Start">Start</a>  </li><li>| <a href="#v:End">End</a>  </li><li>| <a href="#v:Both">Both</a>  </li></ul></li></ul></div><div id="interface"><h1 id="g:1">Parametric functions
</h1><div class="top"><p class="src"><a name="v:stdTolerance" class="def">stdTolerance</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a =&gt; a<a href="src/Diagrams-Parametric.html#stdTolerance" class="link">Source</a></p><div class="doc"><p>The standard tolerance used by <code>std...</code> functions (like
   <code><a href="Diagrams-Parametric.html#v:stdArcLength">stdArcLength</a></code> and <code><a href="Diagrams-Parametric.html#v:stdArcLengthToParam">stdArcLengthToParam</a></code>, currently set at
   <code>1e-6</code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:Codomain" class="def">Codomain</a> p :: *<a href="src/Diagrams-Parametric.html#Codomain" class="link">Source</a></p><div class="doc"><p>Codomain of parametric classes.  This is usually either <code>(V p)</code>, for relative
   vector results, or <code>(Point (V p))</code>, for functions with absolute coordinates.
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Parametric" class="def">Parametric</a> p  <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#Parametric" class="link">Source</a></p><div class="doc"><p>Type class for parametric functions.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:atParam" class="def">atParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atParam" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code> yields a parameterized view of an object as a
   continuous function. It is designed to be used infix, like <code>path
   `<code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code>` 0.5</code>.
</p></div></div><div class="subs instances"><p id="control.i:Parametric" class="caption collapser" onclick="toggleSection('i:Parametric')">Instances</p><div id="section.i:Parametric" class="show"><table><tr><td class="src">(~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a)), <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> a) =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Segment.html#t:FixedSegment">FixedSegment</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc"><p><code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code> yields a parametrized view of segments as continuous
   functions <code>[0,1] -&gt; v</code>, which give the offset from the start of
   the segment for each value of the parameter between <code>0</code> and <code>1</code>.
   It is designed to be used infix, like <code>seg `<code><a href="Diagrams-Parametric.html#v:atParam">atParam</a></code>` 0.5</code>.
</p></td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:DomainBounds" class="def">DomainBounds</a> p  <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#DomainBounds" class="link">Source</a></p><div class="doc"><p>Type class for parametric functions with a bounded domain.  The
   default bounds are <code>[0,1]</code>.
</p><p>Note that this domain indicates the main &quot;interesting&quot; portion of the
   function.  It must be defined within this range, but for some instances may
   still have sensible values outside.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:domainLower" class="def">domainLower</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#domainLower" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:domainLower">domainLower</a></code> defaults to being constantly 0 (for vector spaces with
   numeric scalars).
</p></div><p class="src"><a name="v:domainUpper" class="def">domainUpper</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#domainUpper" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:domainUpper">domainUpper</a></code> defaults to being constantly 1 (for vector spaces
   with numeric scalars).
</p></div></div><div class="subs instances"><p id="control.i:DomainBounds" class="caption collapser" onclick="toggleSection('i:DomainBounds')">Instances</p><div id="section.i:DomainBounds" class="show"><table><tr><td class="src"><a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a =&gt; <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p, <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p) =&gt; <a name="t:EndValues" class="def">EndValues</a> p  <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#EndValues" class="link">Source</a></p><div class="doc"><p>Type class for querying the values of a parametric object at the
   ends of its domain.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:atStart" class="def">atStart</a> :: p -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atStart" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atStart">atStart</a></code> is the value at the start of the domain.  That is,
</p><pre> atStart x = x `atParam` domainLower x
</pre><p>This is the default implementation, but some representations will
   have a more efficient and/or precise implementation.
</p></div><p class="src"><a name="v:atEnd" class="def">atEnd</a> :: p -&gt; <a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> p<a href="src/Diagrams-Parametric.html#atEnd" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:atEnd">atEnd</a></code> is the value at the end of the domain. That is,
</p><pre> atEnd x = x `atParam` domainUpper x
</pre><p>This is the default implementation, but some representations will
   have a more efficient and/or precise implementation.
</p></div></div><div class="subs instances"><p id="control.i:EndValues" class="caption collapser" onclick="toggleSection('i:EndValues')">Instances</p><div id="section.i:EndValues" class="show"><table><tr><td class="src">(~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a)), <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> a) =&gt; <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:EndValues">EndValues</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> p =&gt; <a name="t:Sectionable" class="def">Sectionable</a> p  <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#Sectionable" class="link">Source</a></p><div class="doc"><p>Type class for parametric objects which can be split into
   subobjects.
</p><p>Minimal definition: Either <code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> or <code><a href="Diagrams-Parametric.html#v:section">section</a></code>.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:splitAtParam" class="def">splitAtParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; (p, p)<a href="src/Diagrams-Parametric.html#splitAtParam" class="link">Source</a></p><div class="doc"><p><code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> splits an object <code>p</code> into two new objects
   <code>(l,r)</code> at the parameter <code>t</code>, where <code>l</code> corresponds to the
   portion of <code>p</code> for parameter values from <code>0</code> to <code>t</code> and <code>r</code> for
   to that from <code>t</code> to <code>1</code>.  The following property should hold:
</p><pre> prop_splitAtParam f t u =
   | u &lt; t     = atParam f u == atParam l (u / t)
   | otherwise = atParam f u == atParam f t ??? atParam l ((u - t) / (domainUpper f - t))
   where (l,r) = splitAtParam f t
</pre><p>where <code>(???) = (^+^)</code> if the codomain is a vector type, or
   <code>const flip</code> if the codomain is a point type.  Stated more
   intuitively, all this is to say that the parameterization
   scales linearly with splitting.
</p><p><code><a href="Diagrams-Parametric.html#v:splitAtParam">splitAtParam</a></code> can also be used with parameters outside the
   range of the domain.  For example, using the parameter <code>2</code> with
   a path (where the domain is the default <code>[0,1]</code>) gives two
   result paths where the first is the original path extended to
   the parameter 2, and the second result path travels <em>backwards</em>
   from the end of the first to the end of the original path.
</p></div><p class="src"><a name="v:section" class="def">section</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p<a href="src/Diagrams-Parametric.html#section" class="link">Source</a></p><div class="doc"><p>Extract a particular section of the domain, linearly
   reparameterized to the same domain as the original.  Should
   satisfy the property:
</p><pre> prop_section x l u t =
   let s = section x l u
   in     domainBounds x == domainBounds x
       &amp;&amp; (x `atParam` lerp l u t) == (s `atParam` t)
</pre><p>That is, the section should have the same domain as the
   original, and the reparameterization should be linear.
</p></div><p class="src"><a name="v:reverseDomain" class="def">reverseDomain</a> :: p -&gt; p<a href="src/Diagrams-Parametric.html#reverseDomain" class="link">Source</a></p><div class="doc"><p>Flip the parameterization on the domain.  This has the
   following default definition:
</p><pre> reverse x = section x (domainUpper x) (domainLower x)
</pre></div></div><div class="subs instances"><p id="control.i:Sectionable" class="caption collapser" onclick="toggleSection('i:Sectionable')">Instances</p><div id="section.i:Sectionable" class="show"><table><tr><td class="src">(~ * (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a)), <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-AdditiveGroup.html#t:AdditiveGroup">AdditiveGroup</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a), <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> a) =&gt; <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc"><p>Note that there is no <code>Sectionable</code> instance for <code>Trail' Loop</code>,
   because it does not make sense (splitting a loop at a parameter
   results in a single line, not two loops).  However, it's
   convenient to have a <code>Sectionable</code> instance for <code>Trail</code>; if the
   <code>Trail</code> contains a loop the loop will first be cut and then
   <code>splitAtParam</code> called on the resulting line.  This is
   semantically a bit silly, so please don't rely on it. (*E.g.* if
   this is really the behavior you want, consider first calling
   <code><a href="Diagrams-Trail.html#v:cutLoop">cutLoop</a></code> yourself.)
</p></td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:VectorSpace">VectorSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> <a href="Diagrams-Trail.html#t:Line">Line</a> v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Diagrams-Parametric.html#t:Parametric">Parametric</a> p =&gt; <a name="t:HasArcLength" class="def">HasArcLength</a> p  <span class="keyword">where</span><a href="src/Diagrams-Parametric.html#HasArcLength" class="link">Source</a></p><div class="doc"><p>Type class for parametric things with a notion of arc length.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:arcLengthBounded" class="def">arcLengthBounded</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-intervals-doc/html/Numeric-Interval.html#t:Interval">Interval</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p))<a href="src/Diagrams-Parametric.html#arcLengthBounded" class="link">Source</a></p><div class="doc"><p><code>arcLengthBounded eps x</code> approximates the arc length of <code>x</code>.
   The true arc length is guaranteed to lie within the interval
   returned, which will have a size of at most <code>eps</code>.
</p></div><p class="src"><a name="v:arcLength" class="def">arcLength</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#arcLength" class="link">Source</a></p><div class="doc"><p><code>arcLength eps s</code> approximates the arc length of <code>x</code> up to the
   accuracy <code>eps</code> (plus or minus).
</p></div><p class="src"><a name="v:stdArcLength" class="def">stdArcLength</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#stdArcLength" class="link">Source</a></p><div class="doc"><p>Approximate the arc length up to a standard accuracy of
   <code><a href="Diagrams-Parametric.html#v:stdTolerance">stdTolerance</a></code> (<code>1e-6</code>).
</p></div><p class="src"><a name="v:arcLengthToParam" class="def">arcLengthToParam</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#arcLengthToParam" class="link">Source</a></p><div class="doc"><p><code><code><a href="Diagrams-Parametric.html#v:arcLengthToParam">arcLengthToParam</a></code> eps s l</code> converts the absolute arc length
   <code>l</code>, measured from the start of the domain, to a parameter on
   the object <code>s</code>.  The true arc length at the parameter returned
   is guaranteed to be within <code>eps</code> of the requested arc length.
</p><p>This should work for <em>any</em> arc length, and may return any
   parameter value (not just parameters in the domain).
</p></div><p class="src"><a name="v:stdArcLengthToParam" class="def">stdArcLengthToParam</a> :: p -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p) -&gt; <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> p)<a href="src/Diagrams-Parametric.html#stdArcLengthToParam" class="link">Source</a></p><div class="doc"><p>A simple interface to convert arc length to a parameter,
   guaranteed to be accurate within <code><a href="Diagrams-Parametric.html#v:stdTolerance">stdTolerance</a></code>, or <code>1e-6</code>.
</p></div></div><div class="subs instances"><p id="control.i:HasArcLength" class="caption collapser" onclick="toggleSection('i:HasArcLength')">Instances</p><div id="section.i:HasArcLength" class="show"><table><tr><td class="src">(<a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a)), ~ * (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> (<a href="Diagrams-Parametric.html#t:Codomain">Codomain</a> a))) =&gt; <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Located.html#t:Located">Located</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:Trail">Trail</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:SegTree">SegTree</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Floating">Floating</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-AdditiveGroup.html#t:AdditiveGroup">AdditiveGroup</a> v) =&gt; <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Segment.html#t:Segment">Segment</a> <a href="Diagrams-Segment.html#t:Closed">Closed</a> v)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:InnerSpace">InnerSpace</a> v, <a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-Envelope.html#t:OrderedField">OrderedField</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v), <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:RealFrac">RealFrac</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)) =&gt; <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> (<a href="Diagrams-Trail.html#t:Trail-39-">Trail'</a> l v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Adjusting
</h1><div class="top"><p class="src"><a name="v:adjust" class="def">adjust</a> :: (<a href="Diagrams-Parametric.html#t:DomainBounds">DomainBounds</a> a, <a href="Diagrams-Parametric.html#t:Sectionable">Sectionable</a> a, <a href="Diagrams-Parametric.html#t:HasArcLength">HasArcLength</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a))) =&gt; a -&gt; <a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> (<a href="/usr/share/doc/libghc-diagrams-core-doc/html/Diagrams-Core-V.html#t:V">V</a> a) -&gt; a<a href="src/Diagrams-Parametric.html#adjust" class="link">Source</a></p><div class="doc"><p>Adjust the length of a parametric object such as a segment or
   trail.  The second parameter is an option record which controls how
   the adjustment should be performed; see <code><a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a></code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:AdjustOpts" class="def">AdjustOpts</a> v <a href="src/Diagrams-Parametric.html#AdjustOpts" class="link">Source</a></p><div class="doc"><p>How should a segment, trail, or path be adjusted?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AO" class="def">AO</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:adjMethod" class="def">adjMethod</a> :: <a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:adjSide" class="def">adjSide</a> :: <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:adjEps" class="def">adjEps</a> :: <a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:adjOptsvProxy__" class="def">adjOptsvProxy__</a> :: <a href="Diagrams-Util.html#t:Proxy">Proxy</a> v</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:AdjustOpts" class="caption collapser" onclick="toggleSection('i:AdjustOpts')">Instances</p><div id="section.i:AdjustOpts" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> (<a href="Diagrams-Parametric.html#t:AdjustOpts">AdjustOpts</a> v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:AdjustMethod" class="def">AdjustMethod</a> v <a href="src/Diagrams-Parametric.html#AdjustMethod" class="link">Source</a></p><div class="doc"><p>What method should be used for adjusting a segment, trail, or
   path?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ByParam" class="def">ByParam</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend by the given parameter value
   (use a negative parameter to shrink)
</p></td></tr><tr><td class="src"><a name="v:ByAbsolute" class="def">ByAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend by the given arc length
   (use a negative length to shrink)
</p></td></tr><tr><td class="src"><a name="v:ToAbsolute" class="def">ToAbsolute</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v)</td><td class="doc"><p>Extend or shrink to the given
   arc length
</p></td></tr></table></div><div class="subs instances"><p id="control.i:AdjustMethod" class="caption collapser" onclick="toggleSection('i:AdjustMethod')">Instances</p><div id="section.i:AdjustMethod" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> (<a href="/usr/share/doc/libghc-vector-space-doc/html/Data-VectorSpace.html#t:Scalar">Scalar</a> v) =&gt; <a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> (<a href="Diagrams-Parametric.html#t:AdjustMethod">AdjustMethod</a> v)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:AdjustSide" class="def">AdjustSide</a>  <a href="src/Diagrams-Parametric.html#AdjustSide" class="link">Source</a></p><div class="doc"><p>Which side of a segment, trail, or path should be adjusted?
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Start" class="def">Start</a></td><td class="doc"><p>Adjust only the beginning
</p></td></tr><tr><td class="src"><a name="v:End" class="def">End</a></td><td class="doc"><p>Adjust only the end
</p></td></tr><tr><td class="src"><a name="v:Both" class="def">Both</a></td><td class="doc"><p>Adjust both sides equally
</p></td></tr></table></div><div class="subs instances"><p id="control.i:AdjustSide" class="caption collapser" onclick="toggleSection('i:AdjustSide')">Instances</p><div id="section.i:AdjustSide" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Bounded">Bounded</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Enum">Enum</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Read.html#t:Read">Read</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-data-default-class-doc/html/Data-Default-Class.html#t:Default">Default</a> <a href="Diagrams-Parametric.html#t:AdjustSide">AdjustSide</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.13.2</p></div></body></html>