úÎ!:7i/      !"#$%&'()*+,-.Safe%24patience$An element of a computed difference.patience7Value taken from the "old" list, i.e. left argument to patience8Value taken from the "new" list, i.e. right argument to patienceyValue taken from both lists. Both values are provided, in case your type has a non-structural definition of equality.patience„Given: a list of distinct integers. Picks a subset of the integers in the same order, i.e. a subsequence, with the property that#it is monotonically increasing, and5it is at least as long as any other such subsequence.#This function uses patience sort:  -http://en.wikipedia.org/wiki/Patience_sorting[. For implementation reasons, the actual list returned is the reverse of the subsequence.eYou can pair each integer with an arbitrary annotation, which will be carried through the algorithm.patienceNThe difference between two lists, according to the "patience diff" algorithm.Safe4567X6• patience,The result of a diff of an entry within two /s.In two /Ps m1 and m2, when performing a diff, this type encodes the following situations:KSame key, different values: Stores the two values in the Delta constructor.@Same key, same values: Stores the value in the Same constructor.EKey exists in m1 but not m2: Stores the value in the Old constructor.EKey exists in m2 but not m1: Stores the value in the New constructor.pThis behaviour ensures that we don't lose any information, meaning we can reconstruct either of the original / k a from a / k (  a,). (Note that this slightly differs from B, which does not care about the possibility of reconstruction).patience Takes two /s and returns a / from the same key type to   a , where   a% encodes differences between entries.patienceIs the   an encoding of same values?patienceIs the   an encoding of old values?patienceIs the   an encoding of new values?patienceIs the   an encoding of changed values?patiencePotentially get the  value out of a  .patiencePotentially get the  value out of a  .patiencePotentially get the  value out of a  .patiencePotentially get the Changed value out of a  .patience#Get the original values out of the  .patience Retrieve the  values out of the diff map.patienceRetrieve only the  values out of the diff map.patienceRetrieve only the  values out of the diff map.patienceRetrieve only the  DeltaUnit values out of the diff map. patienceReconstruct both original /s.!patience Map over all g values, returning a map of just the transformed values. This can be more efficient than calling  and then Data.Map's 0."patience Map over all g values, returning a map of just the transformed values. This can be more efficient than calling  and then Data.Map's 0.#patience Map over all g values, returning a map of just the transformed values. This can be more efficient than calling  and then Data.Map's 0.$patienceMap over all the 7 values, preserving the remaining values in the map.%patienceMap over all the 7 values, preserving the remaining values in the map.&patienceMap over all the 7 values, preserving the remaining values in the map.patiencefirst, old /patiencesecond, new /patience/ encoding the diff  !"#$%&  !"#$%&1      !"#$%&'()*+,-./0.123#patience-0.3-H52NEo6v6ge2iESFfahcskPatience Patience.MapdiffItemOldNewBothlongestIncreasing $fShowPiece$fEqItem $fOrdItem $fShowItem $fReadItem $fDataItem $fFunctorItemDeltaSameisSameisOldisNewisDeltagetSamegetOldgetNewgetDelta getOriginalstoSametoOldtoNewtoDelta toOriginalsmapSamemapOldmapNewmapSame'mapOld'mapNew' $fEqDelta$fFoldableDelta$fFunctorDelta$fGenericDelta$fGeneric1Delta $fOrdDelta $fShowDelta$fTraversableDeltacontainers-0.6.0.1Data.Map.InternalMapData.Map.Strict.Internalmap