PatchChoices divides a sequence of patches into three sets: first,
middle and last, 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.
force_last tells PatchChoices that a particular patch is required to be in
the last group, which also means that any patches that depend on it
must be in the last group.
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 middle. In case you're wondering
about the first-middle-last language, it's because in some cases the
yes answers will be last (as is the case for the revert command), and
in others first (as in record, pull and push).
|Produced by Haddock version 2.4.2|