<!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.Choices</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-Choices.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="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.Choices</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >PatchChoices divides a sequence of patches into three sets: <A HREF="first.html" >first</A >, <A HREF="middle.html" >middle</A > and <A HREF="last.html" >last</A >, such that all patches can be applied, if you first apply the first ones then the middle ones and then the last ones. Obviously if there are dependencies between the patches that will put a constraint on how you can choose to divide them up. The PatchChoices data type and associated functions are here to deal with many of the common cases that come up when choosing a subset of a group of patches. </P ><P ><TT ><A HREF="Darcs-Patch-Choices.html#v%3AforceLast" >forceLast</A ></TT > tells PatchChoices that a particular patch is required to be in the <A HREF="last.html" >last</A > group, which also means that any patches that depend on it must be in the <A HREF="last.html" >last</A > group. </P ><P >Internally, a PatchChoices doesn't actually reorder the patches until it is asked for the final output (e.g. by get_first_choice). Instead, each patch is placed in a state of definitely first, definitely last and undecided; undecided leans towards <A HREF="middle.html" >middle</A >. In case you're wondering about the first-middle-last language, it's because in some cases the <A HREF="yes.html" >yes</A > answers will be last (as is the case for the revert command), and in others first (as in record, pull and push). </P ></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" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatchChoices" >patchChoices</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatchChoicesTps" >patchChoicesTps</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> (<A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p, <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatchChoicesTpsSub" >patchChoicesTpsSub</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> (<A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p, <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatchSlot" >patchSlot</A > :: <SPAN CLASS="keyword" >forall</SPAN > p. <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3ASlot" >Slot</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetChoices" >getChoices</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AseparateFirstMiddleFromLast" >separateFirstMiddleFromLast</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AseparateFirstFromMiddleLast" >separateFirstFromMiddleLast</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceFirst" >forceFirst</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceFirsts" >forceFirsts</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => [<A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A >] -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceLast" >forceLast</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceLasts" >forceLasts</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => [<A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A >] -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceMatchingFirst" >forceMatchingFirst</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AforceMatchingLast" >forceMatchingLast</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AselectAllMiddles" >selectAllMiddles</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmakeUncertain" >makeUncertain</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmakeEverythingLater" >makeEverythingLater</A > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATaggedPatch" >TaggedPatch</A > p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATag" >Tag</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atag" >tag</A > :: <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtpPatch" >tpPatch</A > :: <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> p</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASlot" >Slot</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AInFirst" >InFirst</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AInMiddle" >InMiddle</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AInLast" >InLast</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asubstitute" >substitute</A > :: <SPAN CLASS="keyword" >forall</SPAN > p. <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Sealed.html#t%3ASealed2" >Sealed2</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%7C%7C%3A" >:||:</A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</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="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:PatchChoices" ><A NAME="t%3APatchChoices" ></A ></A ><B >PatchChoices</B > p </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:patchChoices" ><A NAME="v%3ApatchChoices" ></A ></A ><B >patchChoices</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:patchChoicesTps" ><A NAME="v%3ApatchChoicesTps" ></A ></A ><B >patchChoicesTps</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> (<A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p, <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="doc" >Tag a sequence of patches. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:patchChoicesTpsSub" ><A NAME="v%3ApatchChoicesTpsSub" ></A ></A ><B >patchChoicesTpsSub</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > p -> (<A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p, <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="doc" >Tag a sequence of patches as subpatches of an existing tag. This is intended for use when substituting a patch for an equivalent patch or patches. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:patchSlot" ><A NAME="v%3ApatchSlot" ></A ></A ><B >patchSlot</B > :: <SPAN CLASS="keyword" >forall</SPAN > p. <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3ASlot" >Slot</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getChoices" ><A NAME="v%3AgetChoices" ></A ></A ><B >getChoices</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > (<A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p))</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:separateFirstMiddleFromLast" ><A NAME="v%3AseparateFirstMiddleFromLast" ></A ></A ><B >separateFirstMiddleFromLast</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:separateFirstFromMiddleLast" ><A NAME="v%3AseparateFirstFromMiddleLast" ></A ></A ><B >separateFirstFromMiddleLast</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p) <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%3E" >:></A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceFirst" ><A NAME="v%3AforceFirst" ></A ></A ><B >forceFirst</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceFirsts" ><A NAME="v%3AforceFirsts" ></A ></A ><B >forceFirsts</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => [<A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A >] -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceLast" ><A NAME="v%3AforceLast" ></A ></A ><B >forceLast</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceLasts" ><A NAME="v%3AforceLasts" ></A ></A ><B >forceLasts</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => [<A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A >] -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceMatchingFirst" ><A NAME="v%3AforceMatchingFirst" ></A ></A ><B >forceMatchingFirst</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:forceMatchingLast" ><A NAME="v%3AforceMatchingLast" ></A ></A ><B >forceMatchingLast</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:selectAllMiddles" ><A NAME="v%3AselectAllMiddles" ></A ></A ><B >selectAllMiddles</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:makeUncertain" ><A NAME="v%3AmakeUncertain" ></A ></A ><B >makeUncertain</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A > -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:makeEverythingLater" ><A NAME="v%3AmakeEverythingLater" ></A ></A ><B >makeEverythingLater</B > :: <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:TaggedPatch" ><A NAME="t%3ATaggedPatch" ></A ></A ><B >TaggedPatch</B > p </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TaggedPatch')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:TaggedPatch" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq" >MyEq</A > p => <A HREF="Darcs-Witnesses-Ordered.html#t%3AMyEq" >MyEq</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Darcs-Patch-Patchy.html#t%3AInvert" >Invert</A > p => <A HREF="Darcs-Patch-Patchy.html#t%3AInvert" >Invert</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Darcs-Patch-Patchy.html#t%3ACommute" >Commute</A > p => <A HREF="Darcs-Patch-Patchy.html#t%3ACommute" >Commute</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Tag" ><A NAME="t%3ATag" ></A ></A ><B >Tag</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P ><TT >TG</TT > <TT >mp i</TT > acts as a temporary identifier to help us keep track of patches during the selection process. These are useful for finding patches that may have moved around during patch selection (being pushed forwards or backwards as dependencies arise). </P ><P >The identifier is implemented as a tuple <TT >TG mp i</TT >. The <TT >i</TT > is just some arbitrary label, expected to be unique within the patches being scrutinised. The <TT >mp</TT > is motivated by patch splitting; it provides a convenient way to generate a new identifier from the patch being split. For example, if we split a patch identified as <TT >TG Nothing 5</TT >, the resulting sub-patches could be identified as <TT >TG (TG Nothing 5) 1</TT >, <TT >TG (TG Nothing 5) 2</TT >, etc. </P ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tag')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Tag" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.0/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tag" ><A NAME="v%3Atag" ></A ></A ><B >tag</B > :: <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3ATag" >Tag</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tpPatch" ><A NAME="v%3AtpPatch" ></A ></A ><B >tpPatch</B > :: <A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p -> p</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Slot" ><A NAME="t%3ASlot" ></A ></A ><B >Slot</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >See module documentation for Darcs.Patch.Choices </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:InFirst" ><A NAME="v%3AInFirst" ></A ></A ><B >InFirst</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:InMiddle" ><A NAME="v%3AInMiddle" ></A ></A ><B >InMiddle</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:InLast" ><A NAME="v%3AInLast" ></A ></A ><B >InLast</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:substitute" ><A NAME="v%3Asubstitute" ></A ></A ><B >substitute</B > :: <SPAN CLASS="keyword" >forall</SPAN > p. <A HREF="Darcs-Patch-Patchy.html#t%3APatchy" >Patchy</A > p => <A HREF="Darcs-Witnesses-Sealed.html#t%3ASealed2" >Sealed2</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p <A HREF="Darcs-Witnesses-Ordered.html#t%3A%3A%7C%7C%3A" >:||:</A > <A HREF="Darcs-Witnesses-Ordered.html#t%3AFL" >FL</A > (<A HREF="Darcs-Patch-Choices.html#t%3ATaggedPatch" >TaggedPatch</A > p)) -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p -> <A HREF="Darcs-Patch-Choices.html#t%3APatchChoices" >PatchChoices</A > p</TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Darcs-Patch-Choices.html#v%3Asubstitute" >substitute</A ></TT > <TT >(a :||: bs)</TT > <TT >pcs</TT > replaces <TT >a</TT > with <TT >bs</TT > in <TT >pcs</TT > preserving the choice associated with <TT >a</TT > </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.0</TD ></TR ></TABLE ></BODY ></HTML >