All Versions
Latest Version
Avg Release Cycle
4 days
Latest Release

Changelog History
Page 1

  • v0.5.0 Changes

    🔄 Changes on a high level

    • ⬆️ Most of the changes should not create a big impact on upgrading. Many definitions were moved to a different module but these modules are and had been re-exported by either Data.TypedEncoding or 👍 Data.TypedEncoding.Instances.Support
    • 🚚 Some functionality has been moved to Examples or removed, notably:
      • "do-" encodings
      • SomeEnc, SomeAnnotation
      • HasA typeclass
    • 🗄 Some functions have been renamed or type signatures adjusted to follow consistent naming conventions. In most cases the changes have been made on previously deprecated definitions.


    • 🚚 Data.TypedEncoding.Instances.Do.Sample moved to Examples
    • Examples.TypedEncoding folder re-org
    • 🚚 Data.TypedEncoding.Instances.Support.Helpers removed foldEncStr, foldCheckedEncStr renamed splitSomePayload to splitCheckedPayload
    • 🚚 HasA typeclass moved to Examples
    • ✂ removed experimental Data.TypedEncoding.Instances.Restriction.Bool in favor of combinator helpers Data.TypedEncoding.Instances.Support.Bool
    • 🚚 Data.TypedEncoding.Common.Types.SomeEnc moved to Examples
    • 🚚 Data.TypedEncoding.Common.Types.SomeAnnotation moved to Examples
    • camel-case of some property names
    • 🚚 Text instances for "Base64" moved to Data.TypedEncoding.Instances.Enc.Warn.Base64
    • ✂ Removed instanced for "r-()" encoding
    • 🚚 Functions from Data.TypedEncoding.Instances.Support.Common moved to Data.TypedEncoding.Instances.Support.Decode
    • 🚚 Signature changed in previously deprecated function runDecoding to match mn ~ alg convention and deprecation removed
    • 🚚 Signature changed in previously deprecated function runDecodings to match mns ~ algs convention and deprecation removed
    • 🚚 Signature changed in previously deprecated function runValidation to match mns ~ algs convention and deprecation removed
    • runValidationChecks renamed to runValidationChecks' to match /typed-encoding/ naming conventions.
    • ✂ removed deprecated propEncodesInto'
    • 🚚 moved Append type family from from Data.TypedEncoding.Common.Class.Util to Data.TypedEncoding.Common.Util.TypeLits
    • Data.TypedEncoding.Common.Class.Util renamed to Data.TypedEncoding.Common.Class.Common
    • 🚚 function extractEither removed from Data.TypedEncoding.Internal.Util
    • 🚚 function withSomeSymbol moved to Data.TypedEncoding.Common.Util.TypeLits
    • 🚚 function proxyCons moved to Data.TypedEncoding.Common.Util.TypeLits

    • More general instances for some encodings in Data.TypedEncoding.Instances.Restriction.Misc

    • 🗄 mkDecoding deprecated in favor of _mkDecoding to follow the naming convention

    • 🗄 mkValidation deprecated in favor of _mkValidation to follow the naming convention

    • validR' function renamed to _validR

  • v0.4.2 Changes

    • 👍 Data.TypedEncoding.Instances.Support.Bool combinators ("r-bool" remains experimental)
    • Correction in r-ban error message typo ("'G' not bounded by 'F'")
    • _implEncFromString creates "r-" encoding from FromEncString definition
    • 🗄 property changes: propEncodesIntoCheck added; propSuperset', propEncodesInto' deprecated
  • v0.4.2.0

    June 03, 2020
  • v0.4.1 Changes

    • Code Changes. Backward compatible

      • changed order in IsSuperset definition to speed up compilation of of more common cases (there is a small chance that it impacts GHC error messages)
      • Faster "r-UTF8", possible issue is changed error message in case ByteString is invalid.
      • Deprecated 'validFromEnc' for its confusing name
      • Deprecated runDecodings in favor of consistently named runDecodings'
      • Deprecated runDecoding in favor of consistently named runDecoding'
      • Deprecated runValidation in favor of consistently named runValidation'
    • 📚 Documentation / code comment fixes and improvements.

    • 🆕 New functionality validRFromEnc' replacing 'validFromEnc' confusing name

      • propCompEncoding property
      • propSupersetCheck property
      • propSafeDecoding' properties
      • propSafeValidatedDecoding properties
      • IsEnc type family and Encoding constraint
      • getUncheckedPayload function
      • pack and unpack overloads in Data.TypedEncoding.Conv.ByteString.Char8
    • 🛠 Fixes

      • corrected propEncodesInto' property test specification
  • v0.4.1.0

    May 31, 2020
  • v0.4 Changes

    • 💥 Breaking

      • IsSupersetOpen type family type arguments have changed
    • Potentially Breaking
      (These changes should be backward compatible in almost all cases):

      • Stronger (more precise) constraints on all functions Data.TypedEncoding.Conv
      • Compilation errors emitted from IsSuperset are different
      • "r-ban" now only allows ASCII chars in annotation name, errors-out otherwise
    • 🆕 New

      • "r-CHAR8" phantom restriction and Superset modified for "r-CHAR8"
      • "r-UNICODE.D76" /text/ character set restriction and Superset modifications
      • Superset constraint added back (different than in 0.2)
      • properties for Superset testing
      • "r-ByteRep" annotation used as a marker of low level use of Char instead of Word8 for ByteString work.
    • 👌 Improved:

      • Data.TypedEncoding.Conv Text, String and ByteString conversions are now more type safe and less error prone. Conversion functions are reversible, A to B to C diagrams commute.
    • 🛠 Fixes:

      • Data.TypedEncoding.Instances.Restriction.BoundedAlphaNums "r-ban" now verifies Superset "r-ASCII"
  • v0.4.0.0 Changes

    May 26, 2020


  • v0.3 Changes

    • 💥 Breaking: Numerous changes on the implementation side, new version should be largely compatible on the call site except for small differences in constraints and order for type variables (if -XTypeApplications is used). See v3 migration guide.

      • EncodeFAll, DecodeFAll, RecreateFAll, EncodeF, DecodeF, RecreateF replaced with EncodeAll, DecodeAll, ValidateAll, Encode, Decode, Validate.
      • functions used to create encoding instances or encoding combinators (e.g. implEncodeP) are now more precisely typed
      • Displ String instance (used in examples, has been made consistent with Text and ByteString)
      • Modules under Data.TypedEncoding.Combinators merged into Data.TypedEncoding.Instances.
      • Modules under Data.TypedEncoding.Internal have been reorganized and moved outside of Internal. Various changes that make the library easier to navigate. for better navigation and discovery.
      • some previously exported combinators (e.g. implTranF) have moved to Data.TypedEncoding.Instances.Support.Unsafe
      • ToEncString, FromEncString have more type variables and function name but backward compatible functions have been provided.
      • Superset typeclass removed, replaced with IsSuperset type family.
      • Minor changes in forall variable order in combinators for "r-bool:" encodings.
      • Encoder type removed, replaced by Encodings.
      • checkWithValidationsEnc combinator renamed to check
      • (Considered private) MkCheckedEnc constructor became UnsafeMkCheckedEnc
      • (Considered private) MkEnc constructor became UnsafeMkEnc
    • 🆕 new functionality

      • new types and typeclasses are based on both encoding name and algorithm name allowing typeclass definitions for open encodings like "r-ban:" that can contain arbitrary symbol literals.
      • new set of combinators grouped into _ (compiler decided algorithm), ' (program specifies algorithm), and algorithm name ~ encoding name categories
      • above combinator subsumes partial encoding / decoding combinators
      • EncodingSuperset class added
  • v0.3.0.2 Changes

    May 24, 2020
    • ➕ Added documentation to Data.TypedEncoding.Conv outlining current limitations, challenges of conversions.
    • 👌 Improved readme
  • v0.3.0.1 Changes

    May 24, 2020
    • 📚 Documentation changes / corrections
    • ✅ New doctest tests
    • Haddock coverage and @since flags