[Haskell] Announce: KURE 2.6.14

Neil Sculthorpe neil at ittc.ku.edu
Fri Jan 11 21:41:21 CET 2013


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
----------

The Kansas University Rewrite Engine (KURE) is a DSL for strategic 
rewriting.  KURE shares concepts with Stratego, but unlike Stratego, 
KURE is strongly typed. KURE is similar to StrategyLib, but has a 
lightweight generic traversal mechanism rather than using SYB.
KURE is the engine inside HERMIT, our Equational Rewrite Framework.

Homepage: http://www.ittc.ku.edu/csdl/fpg/Tools/KURE


Examples
--------

Some small examples of using KURE are provided in the source bundle.  
For a larger, non-trivial, example, see the description of its use in 
the HERMIT project:

http://ittc.ku.edu/csdl/fpg/node/126


Acknowledgement
---------------

This work was supported by funding from the NSF, for which we are grateful.


Neil Sculthorpe




More information about the Haskell mailing list