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

-- | Ogma: Helper tool to interoperate between Copilot and other languages.
--   
--   Ogma is a tool to facilitate the integration of safe runtime monitors
--   into other systems. Ogma extends Copilot, a high-level runtime
--   verification framework that generates hard real-time C99 code.
--   
--   This package implements internal extensions to existing libraries and
--   modules that are used in several ogma packages and their testing
--   facilities.
@package ogma-extra
@version 1.10.0

-- | Auxiliary functions for working with values of type
--   ByteString.
module Data.ByteString.Extra

-- | Safely read a file into a lazy ByteString, returning a
--   Left error message if the file cannot be opened.
safeReadFile :: FilePath -> IO (Either String ByteString)

-- | File-not-found message.
strByteStringFileNotFound :: FilePath -> String

-- | Cannot-open-file message.
strByteStringCannotOpenFile :: FilePath -> String

-- | Auxiliary functions for working with values of type '[]'.
module Data.List.Extra

-- | Safely extract the head of a list.
headEither :: [a] -> Either String a

-- | Apply a transformation only to the head of a list.
toHead :: (a -> a) -> [a] -> [a]

-- | Apply a transformation only to the tail of a list.
toTail :: (a -> a) -> [a] -> [a]

-- | Remove a suffix from a string, if present.
stripSuffix :: String -> String -> String

-- | Auxiliary functions for working with values of type String.
module Data.String.Extra

-- | Safely read a file into a String, returning a Left error
--   message if the file cannot be opened.
safeReadFile :: FilePath -> IO (Either String String)

-- | Convert a string with underscores to PascalCase.
pascalCase :: String -> String

-- | Remove extraneous characters from an identifier and make the starting
--   character lowercase.
--   
--   This function currently replaces hyphens with underscores.
sanitizeLCIdentifier :: String -> String

-- | Remove extraneous characters from an identifier and make the starting
--   character uppercase.
--   
--   This function currently replaces hyphens with underscores.
sanitizeUCIdentifier :: String -> String

-- | Auxiliary functions for working with directories.
module System.Directory.Extra

-- | Copy a template directory into a target location, expanding variables
--   provided in a map in a JSON value, both in the file contents and in
--   the filepaths themselves.
copyTemplate :: FilePath -> Value -> FilePath -> IO ()
