copilot-core-0.2: src/Copilot/Core.hs
--------------------------------------------------------------------------------
-- Copyright © 2011 National Institute of Aerospace / Galois, Inc.
--------------------------------------------------------------------------------
-- | Intermediate representation for Copilot specifications.
-- The form of the representation is based on this paper:
--
-- * 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.
--
-- The following article might also be useful:
--
-- * 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").
module Copilot.Core
( module Copilot.Core.Error
, module Copilot.Core.Expr
, module Copilot.Core.External
, module Copilot.Core.MakeTags
, module Copilot.Core.Operators
, module Copilot.Core.Spec
, module Copilot.Core.Type
, module Copilot.Core.Type.Uninitialized
, module Data.Int
, module Data.Word
) where
import Copilot.Core.Error
import Copilot.Core.Expr
import Copilot.Core.External
import Copilot.Core.MakeTags
import Copilot.Core.Operators
import Copilot.Core.Spec
import Copilot.Core.Type
import Copilot.Core.Type.Uninitialized
import Data.Int
import Data.Word