deepseq-bounded 0.5 → 0.6 (and plans for 0.7)

This document accompanies the release of deepseq-bounded-0.6.0.0, which makes some API breaking changes. Only changes which are API breaking are discussed here. (Refer to the changelog and homepage documents for more information, in addition to more specific documents cited below.)

Nobody seems to care at the moment (just as well in flux of nascency), but I feel somehow morally obligated to provide this library, and ill-documented software is shoddy, how ever-miraculously the fancy types fit together. `^Ȣ(

API breaking changes consist of module renamings, pattern DSL syntax tweaks, and PatNode data type changes. Also there are some new flags, and the roles of certain flags have changed slightly. Please refer to the deepseq-bounded.cabal package description for flag documentation, including remarks about changes and deprecation.

There is a flag (NEW_IMPROVED_PATTERN_GRAMMAR, True by default) which, set to False, will restore the old pattern syntax of version 0.5.*, while still allowing you to enjoy bug fixes and code improvements since version 0.5.5, and continuing as version 0.6 progresses towards 0.7.

However, in the version 0.7 release this compatibility flag will likely be removed, so please try to avoid reliance on the flags characterised as deprecated...

Finally a mention is in order, that at least fifteen new modules were necessary to organise the support for both old and new grammars and PatNode definitions. It seems I've managed not to expose any in the API however! (Wasn't the case in the first draft of this paragraph; come to think of it, it was this paragraph that spurred me to un-expose the three that were still exposed...). These transient internal modules will be gone in 0.7.

API breaking changes in 0.5.5 -> 0.6.0.0

Related changes planned for 0.7.0.0 (ETA early March)

There will be other changes for 0.7 (probably a few API breaking), but whatever they will be, they're probably independent of the changes we're focused on for the bump 0.5 → 0.6. Possibly this document will be evolved to cover those changes too, as well as non-API-breaking changes that are ongoing...