h&! ;      !"#$%&'()*+,-./0123456789: Safe-Inferred";=>?L,package-versionErrors 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  (i.e. wraps a [;] ) except:   has no .We enforce PVP's "tags must be at least A" invariant via the smart-constructor pattern.Trailing zeroes are ignored in <, =, >, and ?.That is, we declare an equivalence class up to trailing zeroes. In particular, the ? identity is #[0] = { [0], [0,0], [0,0,0], ... } and its >/ instance takes the greatest version (based on =).Note: Because we export the underlying list in various ways, (e.g. @), <'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 [;] (or A) representation.Examples>UnsafePackageVersion [0,0,0,0] == UnsafePackageVersion [0,0,0]True=UnsafePackageVersion [4,0,0] > UnsafePackageVersion [1,2,0,0]True UnsafePackageVersion [9,0,0]UnsafePackageVersion [9,0,0] UnsafePackageVersion [0,9,0,0]UnsafePackageVersion [0,9] 1 to match PVP's minimal A.B. Furthermore, all digits must be non-negative.ExamplesmkPackageVersion [1,2]"Right (UnsafePackageVersion [1,2])mkPackageVersion [2,87,7,1]'Right (UnsafePackageVersion [2,87,7,1])mkPackageVersion [1,2,-3,-4,5]#Left (ValidationErrorNegative (-3))mkPackageVersion [3] Right (UnsafePackageVersion [3])mkPackageVersion []Left ValidationErrorEmptypackage-version Displays   in B format.Examples(toText (UnsafePackageVersion [2,7,10,0]) "2.7.10.0"package-versionRenders a string via Pretty' s smart option + default layout.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,package-versionCpackage-versionDpackage-versionEpackage-versionFpackage-version    2021 Thomas Bidne BSD-3-Clause experimental Safe-Inferred";>? H-package-versionSafely constructs a   at compile-time.Examples$$(mkPackageVersionTH [2,4,0])UnsafePackageVersion [2,4,0].package-versionUnsafe version of , intended to be used with known constants. Maybe you should use -?8WARNING: This function is not total. Exercise restraint!ExamplesunsafePackageVersion [1,2,3]UnsafePackageVersion [1,2,3]/package-version Creates a   from G.Note: Because   does not have a H, /) is not injective even on "well-formed" G0s (i.e. non-negative and length > 1). That is, 2 . / is not an isomorphism.Examples(fromVersion (Version [2,13,0] ["alpha"])%Right (UnsafePackageVersion [2,13,0])fromVersion (Version [] [])Left ValidationErrorEmpty0package-versionAttempts to read a A into a  . Leading and/or trailing dots will result in an error, as will the empty string.ExamplesfromString "1.4.27.3"'Right (UnsafePackageVersion [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)))1package-versionAttempts to read a B into a  . Leading and/or trailing dots will result in an error, as will the empty string.ExamplesfromText "1.4.27.3"'Right (UnsafePackageVersion [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)))2package-version Creates a G with empty H from  .Examples(toVersion (UnsafePackageVersion [3,2,0])3Version {versionBranch = [3,2,0], versionTags = []}3package-version Displays   in A format.Examples*toString (UnsafePackageVersion [2,7,10,0]) "2.7.10.0"4package-versionTemplateHaskell for reading the cabal file's version at compile-time. Errors encountered will be returned as compilation errors.Examples,$$(packageVersionTH "package-version.cabal")UnsafePackageVersion [0,3]5package-version Version of 4 that returns a A representation of   at compile-time. Returns  "UNKNOWN" if any errors are encountered.Examples2$$(packageVersionStringTH "package-version.cabal")"0.3",$$(packageVersionStringTH "not-found.cabal") "UNKNOWN"6package-version Version of 4 that returns a B representation of   at compile-time. Returns  "UNKNOWN" if any errors are encountered.Examples0$$(packageVersionTextTH "package-version.cabal")"0.3"*$$(packageVersionTextTH "not-found.cabal") "UNKNOWN"7package-version Version of : that throws an I if any errors are encountered.Examples-packageVersionThrowIO "package-version.cabal"UnsafePackageVersion [0,3]8package-version Version of : that returns a A representation of   at runtime. Returns  "UNKNOWN" if any errors are encountered.Examples.packageVersionStringIO "package-version.cabal""0.3"(packageVersionStringIO "not-found.cabal" "UNKNOWN"9package-version Version of : that returns a B representation of   at runtime. Returns  "UNKNOWN" if any errors are encountered.Examples,packageVersionTextIO "package-version.cabal""0.3"&packageVersionTextIO "not-found.cabal" "UNKNOWN":package-versionReads the cabal-file's version.Examples.packageVersionEitherIO "package-version.cabal""Right (UnsafePackageVersion [0,3]) -./0123456789: -./01 23456789:       !"#$%&'()*+,-./0123456789:;<=>?@ABCDBEFBEGHIJHIKHLMHINOPQRSTUHHHVWpackage-version-0.3-inplaceData.Version.Package.InternalData.Version.PackageDataVersion Data.Version versionTags ReadFileErrorReadFileErrorGeneralReadFileErrorVersionNotFoundReadFileErrorReadStringReadStringErrorReadStringErrorParseReadStringErrorValidateValidationErrorValidationErrorEmptyValidationErrorNegativePackageVersionUnsafePackageVersionMkPackageVersionunPackageVersionmkPackageVersiontoText prettyString$fPrettyPackageVersion$fReadPackageVersion$fMonoidPackageVersion$fSemigroupPackageVersion$fOrdPackageVersion$fEqPackageVersion$fExceptionValidationError$fPrettyValidationError$fExceptionReadStringError$fPrettyReadStringError$fExceptionReadFileError$fPrettyReadFileError$fEqReadFileError$fGenericReadFileError$fShowReadFileError$fNFDataReadFileError$fEqReadStringError$fGenericReadStringError$fShowReadStringError$fNFDataReadStringError$fEqValidationError$fGenericValidationError$fShowValidationError$fNFDataValidationError$fGenericPackageVersion$fLiftBoxedRepPackageVersion$fShowPackageVersion$fNFDataPackageVersionmkPackageVersionTHunsafePackageVersion fromVersion fromStringfromText toVersiontoStringpackageVersionTHpackageVersionStringTHpackageVersionTextTHpackageVersionThrowIOpackageVersionStringIOpackageVersionTextIOpackageVersionEitherIOghc-prim GHC.TypesInt GHC.ClassesEqOrdbaseGHC.Base SemigroupMonoidGHC.ShowshowString text-1.2.5.0Data.Text.InternalTextRep_ReadFileErrorRep_ReadStringErrorRep_ValidationErrorRep_PackageVersionGHC.Exception.Type Exception