úÎ!A>6      !"#$%&'()*+,-./012345Safe%24ªpatience$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.patienceThe character '-' or '+' or ' ' for  or  or  respectively.patienceThe value from an . For , returns the "old" value.Safe4567X=patience M1 = First 6, M2 = Second 6=. Used as an argument for functions that care about which 6 to reconstruct.patience,The result of a diff of an entry within two 6s.In two 6Ps 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 6 k a from a 6 k ( a,). (Note that this slightly differs from B, which does not care about the possibility of reconstruction).patience Takes two 6s and returns a 6 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.Potentially get the original value out of the .!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.&patienceConstruct either the old 6 or new 6 from a diff'patienceReconstruct both original 6s.(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 7.)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 7.*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 7.+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 6patiencesecond, new 6patience6 encoding the diff !"#$%&'()*+,- !"#$%&'()*+,-8      !"#$%&'()*+,-./01234567589:'patience-0.2.1.0-EAz1vDfw89ELF6u9pc2YgqPatience Patience.MapdiffItemOldNewBothlongestIncreasingitemChar itemValue $fShowPiece$fEqItem $fOrdItem $fShowItem $fReadItem $fDataItem $fFunctorItemMM1M2DeltaSameisSameisOldisNewisDeltagetSamegetOldgetNewgetDelta getOriginal getOriginalstoSametoOldtoNewtoDelta toOriginal toOriginalsmapSamemapOldmapNewmapSame'mapOld'mapNew' $fEqDelta$fFoldableDelta$fFunctorDelta$fGenericDelta$fGeneric1Delta $fOrdDelta $fShowDelta$fTraversableDeltacontainers-0.6.0.1Data.Map.InternalMapData.Map.Strict.Internalmap