-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Compiler for a supercombinator language
--
-- Epic is a simple functional language which compiles to reasonably
-- efficient C code, using the Boehm-Demers-Weiser garbage collector
-- (http://www.hpl.hp.com/personal/Hans_Boehm/gc/). It is intended
-- as a compiler back end, and is currently used as a back end for
-- Epigram (http://www.e-pig.org) and Idris
-- (http://www.cs.st-and.ac.uk/~eb/Idris). It can be invoked
-- either as a library or an application.
@package epic
@version 0.1.3
-- | Public interface for Epigram Supercombinator Compiler
module Epic.Compiler
-- | (Debugging) options to give to compiler
data CompileOptions
-- | Keep intermediate C file
KeepC :: CompileOptions
-- | Generate trace at run-time (debug)
Trace :: CompileOptions
-- | Show generated code
ShowBytecode :: CompileOptions
-- | Show parse tree
ShowParseTree :: CompileOptions
-- | Output a .h file too
MakeHeader :: FilePath -> CompileOptions
-- | Extra GCC option
GCCOpt :: String -> CompileOptions
-- | Compile a source file in supercombinator language to a .o
compile :: FilePath -> FilePath -> Maybe FilePath -> IO ()
compileOpts :: FilePath -> FilePath -> Maybe FilePath -> [CompileOptions] -> IO ()
-- | Link a collection of .o files into an executable
link :: [FilePath] -> [FilePath] -> FilePath -> Bool -> IO ()
instance Eq CompileOptions