Skip to content
Bring fusion to everyone
Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench
doc
src/Tungsten
test
.gitignore
.travis.yml
ChangeLog.md
LICENSE
README.md
Setup.hs
package.yaml
stack.yaml
tungsten.cabal

README.md

Tungsten

Build Status

tungsten is a (highly experimental) library bringing deforestation to any recursive structure for free.

The only prerequisite is to define the concerned structure as a fixed-point using the provided Fix operator from the Tungsten.Fix module. It also defines a generalization of the foldr/build rewrite rule, targeting catamorphisms on any fixed-point structures.

Haddock-generated documentation is available at https://nobrakal.github.io/tungsten/

Examples

Some examples of use can be seen in:

Is this valid?

See a more-or-less formal proof in doc/validity.md.

Is this working?

Even if valid from a theoritical point of view, does it work?

Some tests can be found in the test/ directory. They use the great inspection-testing package to test rewrite-rules firing.

Is does not work for me!

Be sure to compile with rewrite rules enabled and the -fspec-constr flag.

The name

Tungsten is the metal with the highest fusion (or melting) point.

You can’t perform that action at this time.