# 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!” 2015, extended version of the PEPM’14 paper. Submitted to Science of Computer Programming.

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.

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.