Neil Sculthorpe | 11 Jan 21:41 2013

Announce: KURE 2.6.14

KURE 2.6.14 is now available on Hackage.  This new version is simpler to instantiate, and has better performance.

What's New?

The main change from version 2.4.x are

(1) A simplified class interface that makes KURE easier to instantiate.  The previous Node and Walker
classes have been merged into a single Walker class, which only requires one class method, allR, compared
to two before (numChildren and childL).

(2) The Walker class no longer takes the monad as a class parameter, but instead provides methods that work
for any monad.  This enforces (some of) the intended semantics, and makes the methods more re-usable.

(3) The type function "Generic" has been removed.  This leads to simpler type signatures, and allows nodes
to appear in multiple sum types without the need for newtype wrappers.  The (minor) disadvantage is that
type inference is weakened, and thus more type ascriptions are now required from the user.

(4) The efficiency of the default definitions of the shallow traversals (anyR, oneR etc...) has been
improved, making it less likely the user will need to overwrite them with custom definitions.

(5) The library as a whole has been internally optimised through aggressive use of inlining, which has led
to significant speed-ups.

(6) Monad transformers for anyR- and oneR-like behaviour are now provided, making it much simpler to
define congruence combinators with those behaviours.

About KURE

(Continue reading)