Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a0995fd4c38add851d8e9994a3499e40 > files > 364

ghc-darcs-devel-2.4.4-3.fc14.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Darcs.Patch.Permutations</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Darcs-Patch-Permutations.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>darcs-2.4.4: a distributed, interactive, smart revision control system</TD
><TD CLASS="topbut"
><A HREF="src/Darcs-Patch-Permutations.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Darcs.Patch.Permutations</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AremoveFL"
>removeFL</A
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AremoveRL"
>removeRL</A
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AremoveCommon"
>removeCommon</A
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%5C%2F%3A"
>:\/:</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%5C%2F%3A"
>:\/:</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcommuteWhatWeCanFL"
>commuteWhatWeCanFL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcommuteWhatWeCanRL"
>commuteWhatWeCanRL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgenCommuteWhatWeCanRL"
>genCommuteWhatWeCanRL</A
> ::  ((p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p)) -&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApartitionFL"
>partitionFL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApartitionRL"
>partitionRL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ahead_permutationsFL"
>head_permutationsFL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; [<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ahead_permutationsRL"
>head_permutationsRL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; [<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AheadPermutationsFL"
>headPermutationsFL</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; [p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aremove_subsequenceFL"
>remove_subsequenceFL</A
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aremove_subsequenceRL"
>remove_subsequenceRL</A
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApartitionConflictingFL"
>partitionConflictingFL</A
> :: (<A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p1, <A HREF="Darcs-Patch-Patchy.html#t%3AInvert"
>Invert</A
> p1) =&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 p2 -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1 -&gt; p2 -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ACommuteFn"
>CommuteFn</A
> p1 p2 = (p1 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p2) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (p2 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p1)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AselfCommuter"
>selfCommuter</A
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p p</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcommuterIdRL"
>commuterIdRL</A
> ::  <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 p2 -&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p2)</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Documentation</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:removeFL"
><A NAME="v%3AremoveFL"
></A
></A
><B
>removeFL</B
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#removeFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3AremoveFL"
>removeFL</A
></TT
> <TT
>x xs</TT
> removes <TT
>x</TT
> from <TT
>xs</TT
> if <TT
>x</TT
> can be commuted to its head.
   Otherwise it returns <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:removeRL"
><A NAME="v%3AremoveRL"
></A
></A
><B
>removeRL</B
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#removeRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3AremoveRL"
>removeRL</A
></TT
> is like <TT
><A HREF="Darcs-Patch-Permutations.html#v%3AremoveFL"
>removeFL</A
></TT
> except with <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:removeCommon"
><A NAME="v%3AremoveCommon"
></A
></A
><B
>removeCommon</B
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%5C%2F%3A"
>:\/:</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%5C%2F%3A"
>:\/:</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#removeCommon"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:commuteWhatWeCanFL"
><A NAME="v%3AcommuteWhatWeCanFL"
></A
></A
><B
>commuteWhatWeCanFL</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#commuteWhatWeCanFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:commuteWhatWeCanRL"
><A NAME="v%3AcommuteWhatWeCanRL"
></A
></A
><B
>commuteWhatWeCanRL</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#commuteWhatWeCanRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:genCommuteWhatWeCanRL"
><A NAME="v%3AgenCommuteWhatWeCanRL"
></A
></A
><B
>genCommuteWhatWeCanRL</B
> ::  ((p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p)) -&gt; (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p) -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> (p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#genCommuteWhatWeCanRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:partitionFL"
><A NAME="v%3ApartitionFL"
></A
></A
><B
>partitionFL</B
></TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#partitionFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>predicate; if true we would like the patch in the <A HREF="left.html"
>left</A
> list
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p</TD
><TD CLASS="rdoc"
>input <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p</TD
><TD CLASS="rdoc"
><A HREF="left.html"
>left</A
> and <A HREF="right.html"
>right</A
> results
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>split an <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
></TT
> into <A HREF="left.html"
>left</A
> and <A HREF="right.html"
>right</A
> lists according to a predicate, using commutation as necessary.
 If a patch does satisfy the predicate but cannot be commuted past one that does not satisfy
 the predicate, it goes in the <A HREF="right.html"
>right</A
> list.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:partitionRL"
><A NAME="v%3ApartitionRL"
></A
></A
><B
>partitionRL</B
></TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#partitionRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>predicate; if true we would like the patch in the <A HREF="right.html"
>right</A
> list
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p</TD
><TD CLASS="rdoc"
>input <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p</TD
><TD CLASS="rdoc"
><A HREF="left.html"
>left</A
> and <A HREF="right.html"
>right</A
> results
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>split an <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
></TT
> into <A HREF="left.html"
>left</A
> and <A HREF="right.html"
>right</A
> lists according to a predicate, using commutation as necessary.
 If a patch does satisfy the predicate but cannot be commuted past one that does not satisfy
 the predicate, it goes in the <A HREF="left.html"
>left</A
> list.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:head_permutationsFL"
><A NAME="v%3Ahead_permutationsFL"
></A
></A
><B
>head_permutationsFL</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; [<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p]</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#head_permutationsFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>This is a minor variant of <TT
><A HREF="Darcs-Patch-Permutations.html#v%3AheadPermutationsFL"
>headPermutationsFL</A
></TT
> with each permutation
   is simply returned as a <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:head_permutationsRL"
><A NAME="v%3Ahead_permutationsRL"
></A
></A
><B
>head_permutationsRL</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; [<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p]</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#head_permutationsRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3Ahead_permutationsRL"
>head_permutationsRL</A
></TT
> is like <TT
><A HREF="Darcs-Patch-Permutations.html#v%3AheadPermutationsFL"
>headPermutationsFL</A
></TT
>, except that we
   operate on an <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
></TT
> (in other words, we are pushing things to the end of a
   patch sequence instead of to the beginning).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:headPermutationsFL"
><A NAME="v%3AheadPermutationsFL"
></A
></A
><B
>headPermutationsFL</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; [p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p]</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#headPermutationsFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3AheadPermutationsFL"
>headPermutationsFL</A
></TT
> <TT
>p:&gt;:ps</TT
> returns all the permutations of the list
   in which one element of <TT
>ps</TT
> is commuted past <TT
>p</TT
>
</P
><P
>Suppose we have a sequence of patches
</P
><PRE
>  X h a y s-t-c k
</PRE
><P
>Suppose furthermore that the patch <TT
>c</TT
> depends on <TT
>t</TT
>, which in turn
   depends on <TT
>s</TT
>.  This function will return
</P
><PRE
> X :&gt; h a y s t c k
 h :&gt; X a y s t c k
 a :&gt; X h y s t c k
 y :&gt; X h a s t c k
 s :&gt; X h a y t c k
 k :&gt; X h a y s t c
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:remove_subsequenceFL"
><A NAME="v%3Aremove_subsequenceFL"
></A
></A
><B
>remove_subsequenceFL</B
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#remove_subsequenceFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3Aremove_subsequenceFL"
>remove_subsequenceFL</A
></TT
> <TT
>ab abc</TT
> returns <TT
>Just c'</TT
> where all the patches in
   <TT
>ab</TT
> have been commuted out of it, if possible.  If this is not possible
   for any reason (the set of patches <TT
>ab</TT
> is not actually a subset of <TT
>abc</TT
>,
   or they can't be commuted out) we return <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:remove_subsequenceRL"
><A NAME="v%3Aremove_subsequenceRL"
></A
></A
><B
>remove_subsequenceRL</B
> :: (<A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq"
>MyEq</A
> p, <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p) =&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#remove_subsequenceRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Darcs-Patch-Permutations.html#v%3Aremove_subsequenceRL"
>remove_subsequenceRL</A
></TT
> is like <TT
>remove_subsequenceFL</TT
> except that it works
   on <TT
><A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:partitionConflictingFL"
><A NAME="v%3ApartitionConflictingFL"
></A
></A
><B
>partitionConflictingFL</B
> :: (<A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p1, <A HREF="Darcs-Patch-Patchy.html#t%3AInvert"
>Invert</A
> p1) =&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 p2 -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1 -&gt; p2 -&gt; <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL"
>FL</A
> p1</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#partitionConflictingFL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Partition a list into the patches that commute with the given patch and those that don't (including dependencies)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:CommuteFn"
><A NAME="t%3ACommuteFn"
></A
></A
><B
>CommuteFn</B
> p1 p2 = (p1 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p2) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (p2 <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E"
>:&gt;</A
> p1)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#CommuteFn"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>CommuteFn is the basis of a general framework for building up commutation
 operations between different patch types in a generic manner. Unfortunately
 type classes are not well suited to the problem because of the multiple possible
 routes by which the commuter for (FL p1, FL p2) can be built out of the
 commuter for (p1, p2) - and more complicated problems when we start building
 multiple constructors on top of each other. The type class resolution machinery
 really can't cope with selecting some route, because it doesn't know that all
 possible routes should be equivalent.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:selfCommuter"
><A NAME="v%3AselfCommuter"
></A
></A
><B
>selfCommuter</B
> :: <A HREF="Darcs-Patch-Patchy.html#t%3ACommute"
>Commute</A
> p =&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p p</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#selfCommuter"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Build a commuter between a patch and itself using the operation from the type class.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:commuterIdRL"
><A NAME="v%3AcommuterIdRL"
></A
></A
><B
>commuterIdRL</B
> ::  <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 p2 -&gt; <A HREF="Darcs-Patch-Permutations.html#t%3ACommuteFn"
>CommuteFn</A
> p1 (<A HREF="Darcs-Witnesses-Ordered.html#t%3ARL"
>RL</A
> p2)</TD
><TD CLASS="declbut"
><A HREF="src/Darcs-Patch-Permutations.html#commuterIdRL"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>