hermit-0.1.2.0: examples/contents.txt
Concatenate Vanishes
====================
* A common script for all our Concatenate Vanishes examples.
* Completed.
* Interesting rewrites: push, innermost, unfold-rule
* It works for all three examples, but I doubt it would work for *any* concat vanishes example.
* Notes: unsafe uses of RULES with pre-conditions.
Evaluation
==========
* Evaluation of Hutton's Razor with exceptions.
* Convert to CPS to avoid repeated pattern matching.
* Completed.
* Interesting rewrites: abstract, fold
Fibonacci (Tupling)
===================
* Example of Tupling transformation.
* Completed and published
* Interesting rewrites: ww-split tactic, case-split(-inline), fold, remember (and fold/unfold remembered defns), let-tuple
Fibonacci (Stream Memoisation)
===================
* Example of Memoisation.
* Completed.
* Interesting rewrites: ww-split tactic
Flatten
=======
* Another concatenate-vanishes example, based on the Reverse example.
* Completed.
* Main rewrites: any-call
Hanoi
=====
* Another tupling transformation
* Completed.
* Interesting rewrites: ww-split tactic, case-split(-inline), fold, remember (and fold/unfold remembered defns), let-tuple
Map
===
* List unrolling.
* Completed.
* Main rewrites: simplify, any-call, unfold, case-split(-inline), remember.
Haskell 2012 Paper
==================
Fibonacci (Unrolling)
---------------------
* We unfold fib once to show how things operate overall.
* Main rewrites: any-bu, inline
Reverse
-------
* Our larger, low-level reverse example.
* Main rewrites: any-bu, unfold
Append
------
* A demonstration of GHC RULES (no use of HERMIT).
IFL 2012 Paper
==================
Fibonacci (Tupling)
-------------------
* Example of Tupling transformation.
* Interesting rewrites: ww-split tactic, case-split(-inline), fold, remember (fold/unfold remembered defns), let-tuple
Last
====
* A classic simple example.
* Completed.
Mean
====
* Problem (and pen-and-paper calculation) provided by Jason Reich.
* A non-WW tupling example (maybe it can be cast as WW, I'm not sure).
* Completed.
* Interesting rewrites: abstract, remember, fold, let-intro, let-float, let-tuple
Nub
===
* A new (that is, unpublished) worker/wrapper example.
* There was a bug in Andy's original pen-and-paper derivation.
* A corrected version is in the files named "Revised".
* There has been no attempt to mechanise this revised derivation as yet.
Quicksort
=========
* Another concatenate-vanishes example.
* Completed.
* Main rewrites: any-call
Reverse
=======
* Higher-level script than in the Haskell 2012 paper.
* Completed. Lower-level version has been published.
* Main rewrites: any-call
Talks
=====
* This directory is for the code that Neil intends to demo at Nottingham, IFL and Haskell.
* Don't mess with it without telling him!
To Do
=====
* Life - Can we translate to a stronger type?
* Kansas Lava example?