Îõ³h,!¿4      !"#$%&'()*+,-./01230.4None"<>?ÀÁÝäìðô÷ L%package-versionÃErrors that can occur when reading PVP version numbers from a file.package-version"General error when reading a file.package-versionError for missing version.package-versionRead/Validation error.package-version7Errors that can occur when reading PVP version numbers.package-versionError when parsing a string.package-versionValidation error.package-version:Errors that can occur when validating PVP version numbers.package-version#PVP version number cannot be empty. package-version'PVP version numbers cannot be negative. package-version  represents  https://pvp.haskell.org/PVP$ version numbers. It is similar to  Data.Version's  except:   has no .We enforce PVP invariants i.e.&Tags must have at least one component.All components >= 0.Trailing zeroes are ignored in 4, 5, 6, and 7.ÔThat is, we declare an equivalence class up to trailing zeroes. In particular, the 7 identity is #[0] = { [0], [0,0], [0,0,0], ... } and its 6/ instance takes the greatest version (based on 5).ÄNote: Because we export the underlying list in various ways, (e.g. 8), 4's extensionality law, x == y ==> f x == f y Ûcan be broken. Take care that you do not rely on this law if you are using its underlying  NonEmpty 9 (or :) representation.Examples6MkPackageVersion [0,0,0,0] == MkPackageVersion [0,0,0]True5MkPackageVersion [4,0,0] > MkPackageVersion [1,2,0,0]True4MkPackageVersion [5,6,0] <> MkPackageVersion [9,0,0]0MkPackageVersion {unPackageVersion = 9 :| [0,0]}4MkPackageVersion [0,9] <> MkPackageVersion [0,9,0,0].MkPackageVersion {unPackageVersion = 0 :| [9]} package-version package-version Constructs a   from an ;ë list. The list must be non-empty to match PVP's minimal A. Furthermore, all digits must be non-negative.ExamplesmkPackageVersion [1,2]6Right (MkPackageVersion {unPackageVersion = 1 :| [2]})mkPackageVersion [2,87,7,1];Right (MkPackageVersion {unPackageVersion = 2 :| [87,7,1]})mkPackageVersion [1,2,-3,-4,5]#Left (ValidationErrorNegative (-3))mkPackageVersion [3]5Right (MkPackageVersion {unPackageVersion = 3 :| []})mkPackageVersion []Left ValidationErrorEmptypackage-version Displays   in < format.Examples$toText (MkPackageVersion [2,7,10,0]) "2.7.10.0"package-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-versionpackage-version package-version!package-version#package-version$package-version%package-version=package-version>package-version?package-version@package-version      2021 Thomas Bidne BSD-3-Clause experimentalNone"<>?ÀÁÝäìðô÷€&package-versionSafely constructs a  ‹ at compile-time. If you know that your input satisfies both invariants (non-empty and non-negative) at compile-time, consider using the   constructor directly.Examples$$(mkPackageVersionTH [2,4,0])0MkPackageVersion {unPackageVersion = 2 :| [4,0]}'package-versionUnsafe version of  Â, intended to be used with known constants. Maybe you should use & or  ?8WARNING: This function is not total. Exercise restraint!ExamplesunsafePackageVersion [1,2,3]0MkPackageVersion {unPackageVersion = 1 :| [2,3]}(package-version Creates a   from A.Note: Because   does not have a , (( is not injective even on "well-formed" A0s (i.e. non-negative and length > 1). That is, + . ( is not an isomorphism.Examples(fromVersion (Version [2,13,0] ["alpha"])9Right (MkPackageVersion {unPackageVersion = 2 :| [13,0]})fromVersion (Version [] [])Left ValidationErrorEmpty)package-versionAttempts to read a : into a  Ò. Leading and/or trailing dots will result in an error, as will the empty string.ExamplesfromString "1.4.27.3";Right (MkPackageVersion {unPackageVersion = 1 :| [4,27,3]}) fromString ""4Left (ReadStringErrorParse "Prelude.read: no parse")fromString "1.a.2"4Left (ReadStringErrorParse "Prelude.read: no parse")fromString ".1.2"4Left (ReadStringErrorParse "Prelude.read: no parse")fromString "1.2."4Left (ReadStringErrorParse "Prelude.read: no parse")fromString "-3.1.2"=Left (ReadStringErrorValidate (ValidationErrorNegative (-3)))*package-versionAttempts to read a < into a  Ò. Leading and/or trailing dots will result in an error, as will the empty string.ExamplesfromText "1.4.27.3";Right (MkPackageVersion {unPackageVersion = 1 :| [4,27,3]}) fromText ""4Left (ReadStringErrorParse "Prelude.read: no parse")fromText "1.a.2"4Left (ReadStringErrorParse "Prelude.read: no parse")fromText ".1.2"4Left (ReadStringErrorParse "Prelude.read: no parse")fromText "1.2."4Left (ReadStringErrorParse "Prelude.read: no parse") fromText ""4Left (ReadStringErrorParse "Prelude.read: no parse")fromText "-3.1.2"=Left (ReadStringErrorValidate (ValidationErrorNegative (-3)))+package-version Creates a A with empty  from  .Examples$toVersion (MkPackageVersion [3,2,0])3Version {versionBranch = [3,2,0], versionTags = []},package-version Displays   in : format.Examples&toString (MkPackageVersion [2,7,10,0]) "2.7.10.0"-package-versionTemplateHaskell for reading the cabal file's version at compile-time. Errors encountered will be returned as compilation errors.Examples,$$(packageVersionTH "package-version.cabal").MkPackageVersion {unPackageVersion = 0 :| [4]}.package-version Version of - that returns a : representation of   at compile-time. Returns  "UNKNOWN" if any errors are encountered.Examples2$$(packageVersionStringTH "package-version.cabal")"0.4",$$(packageVersionStringTH "not-found.cabal") "UNKNOWN"/package-version Version of - that returns a < representation of   at compile-time. Returns  "UNKNOWN" if any errors are encountered.Examples0$$(packageVersionTextTH "package-version.cabal")"0.4"*$$(packageVersionTextTH "not-found.cabal") "UNKNOWN"0package-version Version of 3 that throws an B if any errors are encountered.Examples-packageVersionThrowIO "package-version.cabal".MkPackageVersion {unPackageVersion = 0 :| [4]}1package-version Version of 3 that returns a : representation of   at runtime. Returns  "UNKNOWN" if any errors are encountered.Examples.packageVersionStringIO "package-version.cabal""0.4"(packageVersionStringIO "not-found.cabal" "UNKNOWN"2package-version Version of 3 that returns a < representation of   at runtime. Returns  "UNKNOWN" if any errors are encountered.Examples,packageVersionTextIO "package-version.cabal""0.4"&packageVersionTextIO "not-found.cabal" "UNKNOWN"3package-versionReads the cabal-file's version.Examples.packageVersionEitherIO "package-version.cabal"6Right (MkPackageVersion {unPackageVersion = 0 :| [4]}))*(&31.-2/0,+'    &'()*+,-./0123 Ã      !"#$%&'()*+,-./0123456789:;<=>?=>@ABCABDAEF=GHABI=GJKLMNOPQAARSÔpackage-version-0.4-inplaceData.Version.Package.InternalData.Version.Packagepackage-versionDataVersion Data.Version versionTagsInternalmkPackageVersion ReadFileErrorReadFileErrorGeneralReadFileErrorVersionNotFoundReadFileErrorReadStringReadStringErrorReadStringErrorParseReadStringErrorValidateValidationErrorValidationErrorEmptyValidationErrorNegativePackageVersionMkPackageVersionunPackageVersiontoText$fMonoidPackageVersion$fSemigroupPackageVersion$fOrdPackageVersion$fEqPackageVersion$fExceptionValidationError$fExceptionReadStringError$fExceptionReadFileError$fEqReadFileError$fGenericReadFileError$fShowReadFileError$fNFDataReadFileError$fEqReadStringError$fGenericReadStringError$fShowReadStringError$fNFDataReadStringError$fEqValidationError$fGenericValidationError$fShowValidationError$fNFDataValidationError$fGenericPackageVersion$fLiftBoxedRepPackageVersion$fShowPackageVersion$fNFDataPackageVersionmkPackageVersionTHunsafePackageVersion fromVersion fromStringfromText toVersiontoStringpackageVersionTHpackageVersionStringTHpackageVersionTextTHpackageVersionThrowIOpackageVersionStringIOpackageVersionTextIOpackageVersionEitherIOghc-prim GHC.ClassesEqOrdbaseGHC.Base SemigroupMonoidGHC.Showshow GHC.TypesWordStringInttext-2.1.1-inplaceData.Text.InternalTextRep_ReadFileErrorRep_ReadStringErrorRep_ValidationErrorRep_PackageVersionGHC.Exception.Type Exception