h*-e)      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6.0.5(c) Colin Woodbury, 2015 - 2023BSD3"Colin Woodbury  Safe-Inferred "7<>?(versionsA synonym for the more verbose  megaparsec error type.versionsDevelopers use a number of symbols to seperate groups of digits/letters in their version numbers. These are:&A colon (:). Often denotes an "epoch". A hyphen (-).A tilde (~). Example: 12.0.0-3ubuntu1~20.04.5A plus (+). Stop using this outside of metadata if you are. Example:  10.2+0.93+1-1.An underscore (_). Stop using this if you are.versionsA (Complex) Mess. This is a  descriptive parser, based on examples of stupidly crafted version numbers used in the wild.Groups of letters/numbers, separated by a period, can be further separated by the symbols _-+:Some 6 values have a shape that is tantalizingly close to a  . Example: 1.6.0a+2014+m872b87e73dfb-1. For values like these, we can extract the semver-compatible values out with @, etc..Not guaranteed to have well-defined ordering (Ord:) behaviour, but so far internal tests show consistency. @, etc., are used internally where appropriate to enhance accuracy. versions"Possible values of a section of a . A numeric value is extracted if it could be, alongside the original text it came from. This preserves both . and pretty-print behaviour for versions like 1.003.0. versionsA nice numeric value. versions A numeric value preceeded by an r, indicating a revision. versionsAnything else.versions/s that have a comparison behaviour specific to .versions 1:9.9.9. If one of the given -s has no epoch, its epoch is assumed to be 0. Examples of Version that are not SemVer': 0.25-2, 8.u51-1, 20150826-1, 1:2.3.4versionsA PVP version number specific to the Haskell ecosystem. Like SemVer this is a prescriptive scheme, and follows  https://pvp.haskell.org/ the PVP spec.5Legal PVP values are of the form: MAJOR(.MAJOR.MINOR) Example: 1.2.3 Extra Rules:  Each component must be a number.Only the first MAJOR component is actually necessary. Otherwise, there can be any number of components.  1.2.3.4.5.6.7 is legal.Unlike SemVer there are two MAJOR components, and both indicate a breaking change. The spec otherwise designates no special meaning to components past the MINOR position.versions#A logical unit of a version number.Either entirely numerical (with no leading zeroes) or entirely alphanumerical (with a free mixture of numbers, letters, and hyphens.)Groups of these (like ) are separated by periods to form a full section of a version number. Examples: 1 20150826 r3 0rc1-abc3 versionss have comparison behaviour according to SemVer's rules for preleases.versionsAn (Ideal) version number that conforms to Semantic Versioning. This is a  prescriptive0 parser, meaning it follows the SemVer standard.-like information about themselves. For instances other than # itself however, these optics may not yield anything, depending on the actual value being traversed. Hence, the optics here are all ,s. Consider the   1.2.3.4.58. We can imagine wanting to increment the minor number: + "1.2.3.4.5" & minor %~ (+ 1) "1.3.3.4.5" -But of course something like this would fail: + "1.e.3.4.5" & minor %~ (+ 1) "1.e.3.4.5" However! + "1.e.3.4.5" & major %~ (+ 1) "2.e.3.4.5" &versions MAJOR.minor.patch-prerel+meta'versions major.MINOR.patch-prerel+meta(versions major.minor.PATCH-prerel+meta)versions major.minor.patch-PREREL+meta*versions major.minor.patch-prerel+META+versions(A Natural Transformation into an proper .,versions:Simple Traversals compatible with both lens and microlens.-versions6Simple Lenses compatible with both lens and microlens..versionsA top-level Versioning type. Acts as a wrapper for the more specific types. This allows each subtype to have its own parser, and for said parsers to be composed. This is useful for specifying custom behaviour for when a certain parser fails.2versionsShort-hand for detecting a .3versionsShort-hand for detecting a .4versionsShort-hand for detecting a .5versions Convert a  to a .6versions Convert a  to a .7versions Convert a  to a . Fails if there is an epoch present, but otherwise ignores the  and other metadata. Naturally it also fails if any of the version components contain any non-digits.versionsSpecial logic for when semver-like values can be extracted from a (. This avoids having to "downcast" the  into a  before comparing, and in some cases can offer better comparison results.8versions,Traverse some Text for its inner versioning.  "1.2.3" & _Versioning . _Ideal . patch %~ (+ 1) -- or just: "1.2.3" & patch %~ (+ 1) "1.2.4" 9versions(Traverse some Text for its inner SemVer.:versions)Traverse some Text for its inner Version.;versions&Traverse some Text for its inner Mess.<versionsPossibly extract a  from a ..=versionsPossibly extract a  from a ..>versionsPossibly extract a  from a ..versions is used in multiple places but requires different comparison semantics depending on the wrapping type. This function and  below provide this.versionsLike  , but for .s. We need to be mindful of comparisons like 1.2.0 > 1.2.0rc1) which normally wouldn't occur in SemVer.versionsLike  singleDigit but will grab a leading  even if followed by letters.?versionsA 's inner epoch .versionsA total extraction of the  from an  .@versions/Try to extract the "major" version number from , as if it were a .Aversions/Try to extract the "minor" version number from , as if it were a .Bversions/Try to extract the "patch" version number from , as if it were a .CversionsOkay, fine, say B& couldn't find a nice value. But some es have a "proper" patch-plus-release-candidate value in their patch position, which is parsable as a . Example: 1.6.0a+2014+m872b87e73dfb-1 We should be able to extract 0a safely.DversionsParse a . at compile time.EversionsParse a  at compile time.FversionsParse a  at compile time.GversionsParse a  at compile time.HversionsParse a  at compile time.IversionsParse a piece of  into either an (Ideal) , a (General) , or a (Complex) .JversionsParse a .>. Assumes the version number is the last token in the string.Kversions!Parse a (Ideal) Semantic Version.LversionsInternal megaparsec parser of K.versionsParse a group of digits, which can't be lead by a 0, unless it is 0.MversionsParse a (Haskell) , as defined above.NversionsInternal megaparsec parser of M.OversionsParse a (General) , as defined above.PversionsInternal megaparsec parser of O.QversionsParse a (Complex) , as defined above.RversionsInternal megaparsec parser of Q.SversionsConvert any parsed Versioning type to its textual representation.Tversions Convert a $ back to its textual representation.Uversions Convert a $ back to its textual representation.Vversions Convert a $ back to its textual representation.Wversions Convert a $ back to its textual representation.versionsFlip an Ordering.Xversions2Build metadata does not affect version precedence.Yversions>Two SemVers are equal if all fields except metadata are equal.^versionsCustomized. As in SemVer, metadata is ignored for the purpose of comparison.cversionsComparison of Ideals is always well defined.If comparison of General&s is well-defined, then comparison of Ideal and General9 is well-defined, as there exists a perfect mapping from Ideal to General.If comparison of Complex'es is well-defined, then comparison of General and Complex is well defined for the same reason. This implies comparison of Ideal and Complex is also well-defined..1/0234 !"#$ @ABC DEFGH567IKMOQJLNPRSTUVW-,%)&'(*+89:;<=>?.1/0234 !"#$ @ABC DEFGH567IKMOQJLNPRSTUVW-,%)&'(*+89:;<=>?       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%versions-6.0.5-La6Ymmrdu81BMZxVDujoEu Data.Versionsversions'megaparsec-9.6.1-CSU4Snz6l3kDUBWV6d4zcsText.Megaparsec.ErrorerrorBundlePretty ParsingErrorVSepVColonVHyphenVPlusVUnderVTildeMessMChunkMDigitMRevMPlainChunksVersion_vEpoch_vChunks_vRel_vMetaPVP _pComponentsChunkNumericAlphanumReleaseSemVer_svMajor_svMinor_svPatch _svPreRel_svMetaSemanticmajorminorpatchreleasemetasemantic Traversal'Lens' VersioningIdealGeneralComplexisIdeal isGeneral isComplexsemverToVersion versionToMess versionToPvp _Versioning_SemVer_Version_Mess_Ideal_General_Complexepoch messMajor messMinor messPatchmessPatchChunk versioningQsemverQversionQmessQpvpQ versioning versioning'semversemver'pvppvp'versionversion'messmess'prettyV prettySemVer prettyPVP prettyVer prettyMess $fOrdSemVer $fEqSemVer$fSemanticSemVer$fSemanticText $fSemanticPVP$fSemanticVersion $fOrdVersion $fOrdMChunk$fSemanticMess $fOrdMess$fSemanticVersioning$fOrdVersioning $fOrdChunks $fOrdRelease$fEqVersioning$fShowVersioning$fGenericVersioning$fNFDataVersioning$fHashableVersioning$fLiftBoxedRepVersioning$fDataVersioning$fEqMess $fShowMess $fGenericMess$fLiftBoxedRepMess $fDataMess $fNFDataMess$fHashableMess$fEqVSep $fShowVSep $fGenericVSep$fLiftBoxedRepVSep $fDataVSep $fNFDataVSep$fHashableVSep $fEqMChunk $fShowMChunk$fGenericMChunk$fLiftBoxedRepMChunk $fDataMChunk$fNFDataMChunk$fHashableMChunk $fEqVersion $fShowVersion$fGenericVersion$fLiftBoxedRepVersion $fDataVersion$fNFDataVersion$fHashableVersion $fEqChunks $fShowChunks$fGenericChunks$fLiftBoxedRepChunks $fDataChunks$fNFDataChunks$fHashableChunks$fEqPVP$fOrdPVP $fShowPVP $fGenericPVP$fLiftBoxedRepPVP $fDataPVP $fNFDataPVP $fHashablePVP $fShowSemVer$fGenericSemVer$fLiftBoxedRepSemVer $fDataSemVer$fNFDataSemVer$fHashableSemVer $fEqRelease $fShowRelease $fReadRelease$fGenericRelease$fLiftBoxedRepRelease $fDataRelease$fNFDataRelease$fHashableRelease $fEqChunk $fShowChunk $fReadChunk$fGenericChunk$fLiftBoxedRepChunk $fDataChunk $fNFDataChunk$fHashableChunkghc-prim GHC.ClassesOrd semverAndMess cmpSemVer cmpLenientsingleDigitLenient GHC.TypesWord mchunkText text-2.0.2Data.Text.InternalText unsignedPopposite