-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | A compiler for Copilot targeting C99.
--   
--   This package is a back-end from Copilot to C.
--   
--   Copilot is a stream (i.e., infinite lists) domain-specific language
--   (DSL) in Haskell that compiles into embedded C. Copilot contains an
--   interpreter, multiple back-end compilers, and other verification
--   tools.
--   
--   A tutorial, examples, and other information are available at
--   https://copilot-language.github.io.
@package copilot-c99
@version 4.8

-- | Compile Copilot specifications to C99 code.
module Copilot.Compile.C99

-- | Compile a specification to a .h and a .c file.
--   
--   The first argument is used as prefix for the .h and .c files
--   generated.
compile :: String -> Spec -> IO ()

-- | Compile a specification to a .h and a .c file.
--   
--   The first argument is the settings for the C code generated.
--   
--   The second argument is used as prefix for the .h and .c files
--   generated.
compileWith :: CSettings -> String -> Spec -> IO ()

-- | Settings used to customize the code generated.
data CSettings
CSettings :: String -> FilePath -> CSettings
[cSettingsStepFunctionName] :: CSettings -> String
[cSettingsOutputDirectory] :: CSettings -> FilePath

-- | Default settings with a step function called step.
mkDefaultCSettings :: CSettings
