Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > db7a4a658d190b3e658423135710c498 > files > 725

ghc-darcs-devel-2.8.3-1.fc18.i686.rpm

<!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>Darcs.Witnesses.Sealed</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_Darcs-Witnesses-Sealed.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Darcs-Witnesses-Sealed.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">darcs-2.8.3: a distributed, interactive, smart revision control system</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Darcs.Witnesses.Sealed</p></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:Sealed">Sealed</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:Sealed">Sealed</a> ::  a x -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a  </li></ul></li><li class="src short"><a href="#v:seal">seal</a> ::  a x -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a</li><li class="src short"><a href="#v:unseal">unseal</a> ::  (<span class="keyword">forall</span> x.  a x -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; b</li><li class="src short"><a href="#v:mapSeal">mapSeal</a> ::  (<span class="keyword">forall</span> x.  a x -&gt; b x) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> b</li><li class="src short"><a href="#v:unsafeUnseal">unsafeUnseal</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; a x</li><li class="src short"><a href="#v:unsafeUnsealFlipped">unsafeUnsealFlipped</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y -&gt; a x y</li><li class="src short"><a href="#v:unsafeUnseal2">unsafeUnseal2</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; a x y</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Sealed2">Sealed2</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:Sealed2">Sealed2</a> ::  !(a x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a  </li></ul></li><li class="src short"><a href="#v:seal2">seal2</a> ::  a x y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a</li><li class="src short"><a href="#v:unseal2">unseal2</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; b</li><li class="src short"><a href="#v:mapSeal2">mapSeal2</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> b</li><li class="src short"><span class="keyword">data</span>  <a href="#t:FlippedSeal">FlippedSeal</a> a y <span class="keyword">where</span><ul class="subs"><li><a href="#v:FlippedSeal">FlippedSeal</a> ::  !(a x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y  </li></ul></li><li class="src short"><a href="#v:flipSeal">flipSeal</a> ::  a x y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y</li><li class="src short"><a href="#v:unsealFlipped">unsealFlipped</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a z -&gt; b</li><li class="src short"><a href="#v:mapFlipped">mapFlipped</a> ::  (<span class="keyword">forall</span> x.  a x y -&gt; b x z) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> b z</li><li class="src short"><a href="#v:unsealM">unsealM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a) -&gt; (<span class="keyword">forall</span> x.  a x -&gt; m b) -&gt; m b</li><li class="src short"><a href="#v:liftSM">liftSM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<span class="keyword">forall</span> x.  a x -&gt; b) -&gt; m (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a) -&gt; m b</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Gap">Gap</a> w  <span class="keyword">where</span><ul class="subs"><li><a href="#v:emptyGap">emptyGap</a> ::  (<span class="keyword">forall</span> x.  p x x) -&gt; w p</li><li><a href="#v:freeGap">freeGap</a> ::  (<span class="keyword">forall</span> x y.  p x y) -&gt; w p</li><li><a href="#v:joinGap">joinGap</a> ::  (<span class="keyword">forall</span> x y z.  p x y -&gt; q y z -&gt; r x z) -&gt; w p -&gt; w q -&gt; w r</li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FreeLeft">FreeLeft</a> p</li><li class="src short"><a href="#v:unFreeLeft">unFreeLeft</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a> p -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> (p x)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:FreeRight">FreeRight</a> p</li><li class="src short"><a href="#v:unFreeRight">unFreeRight</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a> p -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> p x</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Sealed" class="def">Sealed</a> a <span class="keyword">where</span><a href="src/Darcs-Witnesses-Sealed.html#Sealed" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Sealed" class="def">Sealed</a> ::  a x -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Sealed" class="caption collapser" onclick="toggleSection('i:Sealed')">Instances</p><div id="section.i:Sealed" class="show"><table><tr><td class="src"><a href="Darcs-Witnesses-Eq.html#t:MyEq">MyEq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> (a x))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Darcs-Witnesses-Show.html#t:Show1">Show1</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:seal" class="def">seal</a> ::  a x -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a<a href="src/Darcs-Witnesses-Sealed.html#seal" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unseal" class="def">unseal</a> ::  (<span class="keyword">forall</span> x.  a x -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; b<a href="src/Darcs-Witnesses-Sealed.html#unseal" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mapSeal" class="def">mapSeal</a> ::  (<span class="keyword">forall</span> x.  a x -&gt; b x) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> b<a href="src/Darcs-Witnesses-Sealed.html#mapSeal" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsafeUnseal" class="def">unsafeUnseal</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a -&gt; a x<a href="src/Darcs-Witnesses-Sealed.html#unsafeUnseal" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsafeUnsealFlipped" class="def">unsafeUnsealFlipped</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y -&gt; a x y<a href="src/Darcs-Witnesses-Sealed.html#unsafeUnsealFlipped" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsafeUnseal2" class="def">unsafeUnseal2</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; a x y<a href="src/Darcs-Witnesses-Sealed.html#unsafeUnseal2" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Sealed2" class="def">Sealed2</a> a <span class="keyword">where</span><a href="src/Darcs-Witnesses-Sealed.html#Sealed2" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Sealed2" class="def">Sealed2</a> ::  !(a x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Sealed2" class="caption collapser" onclick="toggleSection('i:Sealed2')">Instances</p><div id="section.i:Sealed2" class="show"><table><tr><td class="src"><a href="Darcs-Witnesses-Show.html#t:Show2">Show2</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:seal2" class="def">seal2</a> ::  a x y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a<a href="src/Darcs-Witnesses-Sealed.html#seal2" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unseal2" class="def">unseal2</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; b<a href="src/Darcs-Witnesses-Sealed.html#unseal2" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mapSeal2" class="def">mapSeal2</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> a -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed2">Sealed2</a> b<a href="src/Darcs-Witnesses-Sealed.html#mapSeal2" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FlippedSeal" class="def">FlippedSeal</a> a y <span class="keyword">where</span><a href="src/Darcs-Witnesses-Sealed.html#FlippedSeal" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FlippedSeal" class="def">FlippedSeal</a> ::  !(a x y) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:flipSeal" class="def">flipSeal</a> ::  a x y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y<a href="src/Darcs-Witnesses-Sealed.html#flipSeal" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsealFlipped" class="def">unsealFlipped</a> ::  (<span class="keyword">forall</span> x y.  a x y -&gt; b) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a z -&gt; b<a href="src/Darcs-Witnesses-Sealed.html#unsealFlipped" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mapFlipped" class="def">mapFlipped</a> ::  (<span class="keyword">forall</span> x.  a x y -&gt; b x z) -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> a y -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> b z<a href="src/Darcs-Witnesses-Sealed.html#mapFlipped" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsealM" class="def">unsealM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a) -&gt; (<span class="keyword">forall</span> x.  a x -&gt; m b) -&gt; m b<a href="src/Darcs-Witnesses-Sealed.html#unsealM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:liftSM" class="def">liftSM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<span class="keyword">forall</span> x.  a x -&gt; b) -&gt; m (<a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> a) -&gt; m b<a href="src/Darcs-Witnesses-Sealed.html#liftSM" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Gap" class="def">Gap</a> w  <span class="keyword">where</span><a href="src/Darcs-Witnesses-Sealed.html#Gap" class="link">Source</a></p><div class="doc"><p><code><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a></code> abstracts over <code><a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a></code> and <code><a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a></code> for code constructing these values
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:emptyGap" class="def">emptyGap</a> ::  (<span class="keyword">forall</span> x.  p x x) -&gt; w p<a href="src/Darcs-Witnesses-Sealed.html#emptyGap" class="link">Source</a></p><div class="doc"><p>An empty <code><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a></code>, e.g. <code>NilFL</code> or <code>NilRL</code>
</p></div><p class="src"><a name="v:freeGap" class="def">freeGap</a> ::  (<span class="keyword">forall</span> x y.  p x y) -&gt; w p<a href="src/Darcs-Witnesses-Sealed.html#freeGap" class="link">Source</a></p><div class="doc"><p>A <code><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a></code> constructed from a completely polymorphic value, for example the constructors
 for primitive patches
</p></div><p class="src"><a name="v:joinGap" class="def">joinGap</a> ::  (<span class="keyword">forall</span> x y z.  p x y -&gt; q y z -&gt; r x z) -&gt; w p -&gt; w q -&gt; w r<a href="src/Darcs-Witnesses-Sealed.html#joinGap" class="link">Source</a></p><div class="doc"><p>Compose two <code><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a></code> values together in series, e.g. 'joinGap (+&gt;+)' or 'joinGap (:&gt;:)'
</p></div></div><div class="subs instances"><p id="control.i:Gap" class="caption collapser" onclick="toggleSection('i:Gap')">Instances</p><div id="section.i:Gap" class="show"><table><tr><td class="src"><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a> <a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a> <a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a></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:FreeLeft" class="def">FreeLeft</a> p <a href="src/Darcs-Witnesses-Sealed.html#FreeLeft" class="link">Source</a></p><div class="doc"><p>'FreeLeft p' is 'forall x . exists y . p x y'
 In other words the caller is free to specify the left witness,
 and then the right witness is an existential.
 Note that the order of the type constructors is important for ensuring
 that <code>y</code> is dependent on the <code>x</code> that is supplied.
 This is why <code>Stepped</code> is needed, rather than writing the more obvious
 'Sealed (Poly p)' which would notionally have the same quantification
 of the type witnesses.
</p></div><div class="subs instances"><p id="control.i:FreeLeft" class="caption collapser" onclick="toggleSection('i:FreeLeft')">Instances</p><div id="section.i:FreeLeft" class="show"><table><tr><td class="src"><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a> <a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:unFreeLeft" class="def">unFreeLeft</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a> p -&gt; <a href="Darcs-Witnesses-Sealed.html#t:Sealed">Sealed</a> (p x)<a href="src/Darcs-Witnesses-Sealed.html#unFreeLeft" class="link">Source</a></p><div class="doc"><p>Unwrap a <code><a href="Darcs-Witnesses-Sealed.html#t:FreeLeft">FreeLeft</a></code> value
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FreeRight" class="def">FreeRight</a> p <a href="src/Darcs-Witnesses-Sealed.html#FreeRight" class="link">Source</a></p><div class="doc"><p>'FreeLeft p' is 'forall y . exists x . p x y'
 In other words the caller is free to specify the right witness,
 and then the left witness is an existential.
 Note that the order of the type constructors is important for ensuring
 that <code>x</code> is dependent on the <code>y</code> that is supplied.
</p></div><div class="subs instances"><p id="control.i:FreeRight" class="caption collapser" onclick="toggleSection('i:FreeRight')">Instances</p><div id="section.i:FreeRight" class="show"><table><tr><td class="src"><a href="Darcs-Witnesses-Sealed.html#t:Gap">Gap</a> <a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:unFreeRight" class="def">unFreeRight</a> ::  <a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a> p -&gt; <a href="Darcs-Witnesses-Sealed.html#t:FlippedSeal">FlippedSeal</a> p x<a href="src/Darcs-Witnesses-Sealed.html#unFreeRight" class="link">Source</a></p><div class="doc"><p>Unwrap a <code><a href="Darcs-Witnesses-Sealed.html#t:FreeRight">FreeRight</a></code> value
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>