packages feed

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?