Changelog for typed-encoding-0.3.0.1
Changelog for typed-encoding
Anticipated future breaking changes
Data.TypedEncoding.Internal.Class.IsStringRexpected to be be changed / replaced- (post 0.3) "enc-B64" will be moved to a different package (more distant goal)
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