úÎ!_ŽYòZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYNone17G versioning@An uninhabited type. We define our own type instead of using  Data.Voidj because we need additional instances. Moreover this type is internal. Users are supposed to use NA to express absence.None .>@AHUVXS  versioning"A type indicating absence. The ZV is a hack needed to let aeson parse a record successfully even if a field of type  is missing.%Ideally we would like to define it as  data NA = NAbut this would not work with FromJSON, instances that are derived with Generic. versioningSame as , for sum types. versioningÚThis allows us to express that a field is only present until a given version. The first parameter is the last version in which the field is present, the second parameter is the actual version of the data-type. versioningSame as 0, for sum types. The only difference between  and 3 is in the type used to indicate absence. In  absence is expressed with %, which is isomorphic to '()'. In  it is expressed with , which is isomorphic to Void. versioningÞThis allows us to express that a field is only present since a given version. The first parameter is the version in which the field has been introduced, the second parameter is the actual version of the data-type.  versioningCompare two versions! versioning'Get the type-level natural of a version# versioningGet the previous version$ versioningThe version of a data model' versioning+Get the version number of a versioned value( versioning"A placeholder for an absent value.#  !"#$&%'(#$&%#"! ( 'Safe-.HUV!9[ versioningHA type family to compute Boolean equality. We can't use the one from Data.Type.Equality. because before 8.4 it was not poly-kinded.[None,.=>?@AHUVXk0®\ versioning6Downgrade from a higher to a lower version by calling .‹ on all the intermediary steps. You do not need to define any instance. They are derived automatically if all the intermediary - instances are defined.+ versioning/This constraint specifies that a value of type a# can be downgraded from version v to version w.] versioning4Upgrade from a lower to a higher version by calling .‹ on all the intermediary steps. You do not need to define any instance. They are derived automatically if all the intermediary - instances are defined., versioning/This constraint specifies that a value of type a! can be upgraded from version v to version w.- versioningAdapt from a version to another/ versioning4Upgrade from a lower to a higher version by calling ." on all the intermediary steps.0 versioning6Downgrade from a higher to a lower version by calling ." on all the intermediary steps.+,-./0-.,/+0None,-.0=>?@AHSUVXk=ã 9 versioning)Handy constraint synonym to be used with ?: versioning2The function that will perform the actual decoding< versioning/The action to apply to the decoded object with A= versioning6The pure function to apply to the decoded object with C> versioningRThe result type of the action that has been applied to the decoded object with C or A.@ versioninghDecode by trying all the versions decrementally and upgrade the decoded object to the newest version.A versioninguDecode by trying all the versions decrementally and apply an action to the decoded object at its original version.B versioningLike Ab, with an additional type-parameter indicating the oldest version you want to be able to decodeC versioningPure version of A.D versioningPure version of B.56789:;<=>?@ABCD>=<987:;65?@CABDNone,-.>@AHSVXkY^I versioningLike Jb, with an additional type-parameter indicating the oldest version you want to be able to decodeJ versioning)Handy constraint synonym to be used with KK versioningvDecode a JSON string by trying all the versions decrementally and upgrade the decoded object to the newest version.L versioningLike K but it reads from a strict  ByteStringM versioningLike K* but returns a message when decoding failsN versioningLike L* but returns a message when decoding failsO versioningLike Kb, with an additional type-parameter indicating the oldest version you want to be able to decodeP versioningƒDecode a JSON string by trying all the versions decrementally and apply an action to the decoded object at its original version.Q versioningLike P but it reads from a strict  ByteStringR versioningLike P* but returns a message when decoding failsS versioningLike Q* but returns a message when decoding failsT versioningLike Pb, with an additional type-parameter indicating the oldest version you want to be able to decodeU versioning‰Decode a JSON string by trying all the versions decrementally and apply a pure function to the decoded object at its original version.V versioningLike U but it reads from a strict  ByteStringW versioningLike U* but returns a message when decoding failsX versioningLike V* but returns a message when decoding failsY versioningLike Ub, with an additional type-parameter indicating the oldest version you want to be able to decode^ versioningDecode with the aeson _ function` versioningDecode with the aeson a functionb versioningDecode with the aeson c functiond versioningDecode with the aeson e function>IJKLMNOPQRSTUVWXY>JIKLMNOUVWXYPQRSTf      !"#$%&'()*+,)-./0123456789:;<=>?@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghifgjkfglmfgno)versioning-0.3.1.0-KkXcQRgpMi28UgRvxmWj2YVersioning.Internal.BaseVersioning.BaseVersioning.UpgradeVersioning.Internal.DecodingVersioning.JSONVersioning.Internal.EqualityBare $fToJSONBare$fFromJSONBare $fShowBare $fGenericBare$fEqBareV20V19V18V17V16V15V14V13V12V11V10V9V8V7V6V5V4V3V2V1V0NAUntilSUntilSinceSSinceVCmpVNatVSuccVPredVVZero versionNumberna$fEqV$fShowV DowngradeUpgradeAdaptadaptupgrade downgrade$fUpgrade'Falsevwa$fUpgrade'Truevwa$fDowngrade'Falsevwa$fDowngrade'TruevwaWithAnyVersionFromWithAnyVersionDecodeAnyVersionDecodableToFrom DecodableToDecoderApplyMApplyApplieddecodeAnyVersiondecodeAnyVersionFromwithAnyVersionMwithAnyVersionFromMwithAnyVersionwithAnyVersionFrom"$fDecodeAnyVersion'Falsefromvwadec!$fDecodeAnyVersion'Truefromvwadec $fWithAnyVersion'Falsefromvacdec$fWithAnyVersion'TruefromvacdecJsonDecodableToFromJsonDecodableTofromJsonAnyVersionfromJsonAnyVersionStrictfromJsonAnyVersionEitherfromJsonAnyVersionEitherStrictfromJsonAnyVersionFromwithJsonAnyVersionMwithJsonAnyVersionStrictMwithJsonAnyVersionEitherMwithJsonAnyVersionEitherStrictMwithJsonAnyVersionFromMwithJsonAnyVersionwithJsonAnyVersionStrictwithJsonAnyVersionEitherwithJsonAnyVersionEitherStrictwithJsonAnyVersionFrombase GHC.MaybeMaybe== Downgrade'Upgrade' jsonDecode$aeson-1.4.2.0-JRlZKD1FkrO2eJjy3cMEtP Data.AesondecodejsonDecodeStrict decodeStrictjsonEitherDecode eitherDecodejsonEitherDecodeStricteitherDecodeStrict