hfusion-0.0.5.1: A library for fusing a subset of Haskell programs.

HFusion.CHANGELOG

Description

Version 0.0.5.1

  • Lists missing file in hfusion.cabal.

Version 0.0.5

  • Implements searching and fusing explicit compositions of hylomorphisms in expressions. E.g.
 ... map f (filter p (map g xs)) ...

but not

 ... map f . filter p . map g ...

or

 h = map f
 k = filter p
 ... h (k (map g xs)) ...
  • Fixes fusion of tails . map with tails defined as:
   tails :: [a] -> [[a]]
   tails [] = []
   tails xs@(_:xss) = xs : tails xss
  • Fixed derivation of mutual hylos from definitions where each one uses a different set of names for the constant arguments.
  • Fixed pretty printing of terms in the presence of infix constructors. HFusion doesn't support specifying precedences and associativity for infix operators really. I've tried to have the common infix operators ((:),(+),(*),(-),(^),(++)) printed resonably, however.

Version 0.0.4

  • Fuses spoon-feeded compositions.