Changelog for typed-encoding-0.5.1.0
Changelog for typed-encoding
Anticipated future breaking changes
Data.TypedEncoding.Instances.Do.Samplewill be moved toExamplesHasATypeclass will be moved toExamplesData.TypedEncoding.Common.Class.IsStringRexpected to be be changed / replaced- More module renaming to separate internal implementation code and code targeting examples
- (post 0.5) "enc-B64" will be moved to a different package (more distant goal)
- (intended as private) @implVerifyR@ will be removed from Data.TypedEncoding.Instances.Restriction.UTF8
0.5.1.0
- "r-B64" added
- @implVerifyR@ convenience function added to 'Data.TypedEncoding.Instances.Support.Encode'
0.5.0
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.TypedEncodingorData.TypedEncoding.Instances.Support - Some functionality has been moved to Examples or removed, notably:
- "do-" encodings
SomeEnc,SomeAnnotationHasAtypeclass
- 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.
Details
-
Data.TypedEncoding.Instances.Do.Sample moved to Examples
-
Examples.TypedEncoding folder re-org
-
Data.TypedEncoding.Instances.Support.HelpersremovedfoldEncStr,foldCheckedEncStrrenamedsplitSomePayloadtosplitCheckedPayload -
HasAtypeclass moved to Examples -
removed experimental
Data.TypedEncoding.Instances.Restriction.Boolin favor of combinator helpersData.TypedEncoding.Instances.Support.Bool -
Data.TypedEncoding.Common.Types.SomeEncmoved to Examples -
Data.TypedEncoding.Common.Types.SomeAnnotationmoved 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.Commonmoved toData.TypedEncoding.Instances.Support.Decode -
Signature changed in previously deprecated function
runDecodingto matchmn ~ algconvention and deprecation removed -
Signature changed in previously deprecated function
runDecodingsto matchmns ~ algsconvention and deprecation removed -
Signature changed in previously deprecated function
runValidationto matchmns ~ algsconvention and deprecation removed -
runValidationChecksrenamed torunValidationChecks'to match /typed-encoding/ naming conventions. -
removed deprecated
propEncodesInto' -
moved
Appendtype family from fromData.TypedEncoding.Common.Class.UtiltoData.TypedEncoding.Common.Util.TypeLits -
Data.TypedEncoding.Common.Class.Utilrenamed toData.TypedEncoding.Common.Class.Common -
function
extractEitherremoved fromData.TypedEncoding.Internal.Util -
function
withSomeSymbolmoved toData.TypedEncoding.Common.Util.TypeLits -
function
proxyConsmoved toData.TypedEncoding.Common.Util.TypeLits -
More general instances for some encodings in
Data.TypedEncoding.Instances.Restriction.Misc -
mkDecodingdeprecated in favor of_mkDecodingto follow the naming convention -
mkValidationdeprecated in favor of_mkValidationto follow the naming convention -
validR'function renamed to_validR
0.4.2
Data.TypedEncoding.Instances.Support.Boolcombinators ("r-bool" remains experimental)- Correction in
r-banerror message typo ("'G' not bounded by 'F'") _implEncFromStringcreates "r-" encoding fromFromEncStringdefinition- property changes:
propEncodesIntoCheckadded;propSuperset',propEncodesInto'deprecated
0.4.1
-
Code Changes. Backward compatible
- changed order in
IsSupersetdefinition 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
runDecodingsin favor of consistently namedrunDecodings' - Deprecated
runDecodingin favor of consistently namedrunDecoding' - Deprecated
runValidationin favor of consistently namedrunValidation'
- changed order in
-
Documentation / code comment fixes and improvements.
-
New functionality
validRFromEnc'replacing 'validFromEnc' confusing namepropCompEncodingpropertypropSupersetCheckpropertypropSafeDecoding'propertiespropSafeValidatedDecodingpropertiesIsEnctype family andEncodingconstraintgetUncheckedPayloadfunctionpackandunpackoverloads inData.TypedEncoding.Conv.ByteString.Char8
-
Fixes
- corrected
propEncodesInto'property test specification
- corrected
0.4
-
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
IsSupersetare different - "r-ban" now only allows ASCII chars in annotation name, errors-out otherwise
- Stronger (more precise) constraints on all functions
-
New
"r-CHAR8"phantom restriction andSupersetmodified for "r-CHAR8""r-UNICODE.D76"/text/ character set restriction andSupersetmodificationsSupersetconstraint added back (different than in 0.2)- properties for
Supersettesting "r-ByteRep"annotation used as a marker of low level use ofCharinstead ofWord8forByteStringwork.
-
Improved:
Data.TypedEncoding.ConvText,StringandByteStringconversions 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 verifiesSuperset "r-ASCII"
0.3.0.2
- Added documentation to
Data.TypedEncoding.Convoutlining current limitations, challenges of conversions. - Improved readme
0.3.0.1
- Documentation changes / corrections
- New doctest tests
- Haddock coverage and @since flags
0.3
-
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
-XTypeApplicationsis used). See v3 migration guide.EncodeFAll,DecodeFAll,RecreateFAll,EncodeF,DecodeF,RecreateFreplaced withEncodeAll,DecodeAll,ValidateAll,Encode,Decode,Validate.- functions used to create encoding instances or encoding combinators (e.g.
implEncodeP) are now more precisely typed Displ Stringinstance (used in examples, has been made consistent with Text and ByteString)- Modules under
Data.TypedEncoding.Combinatorsmerged intoData.TypedEncoding.Instances. - Modules under
Data.TypedEncoding.Internalhave been reorganized and moved outside ofInternal. Various changes that make the library easier to navigate. for better navigation and discovery. - some previously exported combinators (e.g.
implTranF) have moved toData.TypedEncoding.Instances.Support.Unsafe ToEncString,FromEncStringhave more type variables and function name but backward compatible functions have been provided.Supersettypeclass removed, replaced withIsSupersettype family.- Minor changes in
forallvariable order in combinators for"r-bool:"encodings. Encodertype removed, replaced byEncodings.checkWithValidationsEnccombinator renamed tocheck- (Considered private)
MkCheckedEncconstructor becameUnsafeMkCheckedEnc - (Considered private)
MkEncconstructor becameUnsafeMkEnc
-
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), andalgorithm name ~ encoding namecategories abovecombinator subsumes partial encoding / decoding combinatorsEncodingSupersetclass added
- new types and typeclasses are based on both encoding name and algorithm name allowing
typeclass definitions for open encodings like
0.2.2
- Next version (0.3) will have number of breaking changes, some rethinking and a lot of cleanup, this version preps for some of that (see section above)
- Fixes
- Conversions type safety issues
- new and corrected approach to conversions (all old conversion functions have been deprecated)
- corrected documentation in
Data.TypedEncoding.Combinators.Restriction.BoundedAlphaNums
- new functionality:
Encversions forpack/unpackforTextandByteString.Encversions ofdecodeUtf8/encodeUtf8- new and corrected approach to conversions (all old conversion functions have been deprecated)
IsSupersettype family with basic combinators deprecatesSupersettypeclass.- more modules exported from
Data.TypedEncoding.Instances.Supportfor instance and combinator creation - more utility type families
Data.TypedEncoding.Internal.Util.TypeLits - more utility combinators for creating encoding instances and combinators.
- String instance added in number of places, including for "r-ASCII" encoding
- few more support convenience functions.
- deprecation warnings (see above)
0.2.1.0
- new functionality:
- bounded alpha-numeric restriction encodings (
r-ban) - boolean algebra of encodings
- bounded alpha-numeric restriction encodings (
- minor improvements
- dropped IsString constraint from instances in
Data.TypedEncoding.Instances.Restriction.Common - added forall annotation to encodeAll and decodeAll
- dropped IsString constraint from instances in
0.2.0.0
- breaking:
- Data.TypedEncoding.Instances modules reorganized
- Data.TypedEncoding.Internal.Class modules reorganized
- Data.TypedEncoding.Internal.Utils module renamed
- Several TypeAnnotations friendly changes:
- Removed polymorphic kinds in most places
- Changed typeclass name from
SubsettoSuperset - flipped type parameters on FlattenAs, HasA typeclass functions
- Removed Proxy parameters from several methods (few methods have a '_' backward compatible version which still has them)
- new functionality:
ToEncString- class allowing to convert types toEncencoded stringsFromEncString- class reverses ToEncStringCheckedEncuntyped version ofEnccontaining valid encodingSomeEncexistentially quantified version ofEncUncheckedEncfor working with not validated encodingRecreateExUnkStepconstructor added to RecreateEx- utility
IsStringR- reverse toIsStringclass - utility
SymbolListclass
- docs:
- ToEncString example
0.1.0.0
- initial release