# The Haskell Equational Reasoning Model-to-Implementation Tunnel (HERMIT)

The **Haskell Equational Reasoning Model-to-Implementation Tunnel**
(HERMIT) is a GHC plugin that allows post-hoc transformations
to be applied to Haskell programs, after compilation has started.
HERMIT can be used for program-specfic optimizations,
domain-specific optimzations, or for constructing semi-formal
assurance arguments.

## Architecture

## The HERMIT Package

- On Hackage: http://hackage.haskell.org/package/hermit
- On Github: https://github.com/ku-fpg/hermit

## Publications

M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Traversals Is Easy!”

*Science of Computer Programming*, 2015, to appear.

A. Farmer, C. Höner zu Siederdissen, and A. Gill, “The HERMIT in the Stream,” in

*Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation*, ser. PEPM ’14. ACM, 2014.

M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Is Easy!” in

*Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation*, ser. PEPM ’14. ACM, 2014, won Best Paper Award.

N. Sculthorpe, A. Farmer, and A. Gill, “The HERMIT in the tree: Mechanizing program transformations in the GHC core language,” in

*Proceedings of the 24th Symposium on Implementation and Application of Functional Languages*, ser. Lecture Notes in Computer Science, vol. 8241, 2013, pp. 86–103.

A. Farmer, A. Gill, E. Komp, and N. Sculthorpe, “The HERMIT in the machine: A plugin for the interactive transformation of GHC core language programs,” in

*Proceedings of the ACM SIGPLAN Haskell Symposium*, ser. Haskell ’12. ACM, 2012, pp. 1–12.