copilot-core-3.3: An intermediate representation for Copilot.
Safe HaskellSafe
LanguageHaskell2010

Copilot.Core

Description

Intermediate representation for Copilot specifications. The following articles might also be useful:

  • Carette, Jacques and Kiselyov, Oleg and Shan, Chung-chieh, "Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages", Journal of Functional Programming vol. 19, p. 509-543, 2009.
  • Guillemette, Louis-Julien and Monnier, Stefan, "Type-Safe Code Transformations in Haskell", Electronic Notes in Theoretical Computer Science vol. 174, p. 23-39, 2007.

For examples of how to traverse a Copilot specification see the source code of the interpreter (Copilot.Core.Interpret) and the pretty-printer (Copilot.Core.PrettyPrint).

Documentation

module Data.Int

module Data.Word