-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A build tool for ATS
--
-- A collection of scripts to simplify building ATS projects.
@package ats-pkg
@version 3.2.2.0
module Distribution.ATS
-- | This uses the users hooks as is simpleUserHooks, modified to
-- build the ATS library.
cabalHooks :: UserHooks
-- | Use this in place of defaultMain for a simple build.
atsPolyglotBuild :: IO ()
module Language.ATS.Package
-- | Build in current directory or indicated directory
buildAll :: Int -> Maybe String -> Maybe String -> Maybe FilePath -> IO ()
check :: Maybe String -> Maybe FilePath -> IO Bool
mkPkg :: Maybe String -> Bool -> Bool -> Bool -> [IO ()] -> [String] -> Maybe String -> Int -> IO ()
cleanAll :: IO ()
buildHelper :: Bool -> ATSDependency -> IO ()
displayList :: String -> IO ()
atspkgVersion :: Version
-- | Make a tarball from a directory containing the compiler.
packageCompiler :: FilePath -> IO ()
newtype Version
Version :: [Natural] -> Version
-- | Data type associated with atspkg.dhall file.
data Pkg
Pkg :: [Bin] -> [Bin] -> [Lib] -> Maybe Text -> Maybe Text -> Version -> Version -> [LibDep] -> [LibDep] -> [LibDep] -> Text -> [Text] -> [Text] -> [Src] -> Bool -> Solver -> Maybe Debian -> Bool -> Pkg
-- | List of binaries to be built
[$sel:bin:Pkg] :: Pkg -> [Bin]
-- | List of test suites
[$sel:test:Pkg] :: Pkg -> [Bin]
-- | List of libraries to be built
[$sel:libraries:Pkg] :: Pkg -> [Lib]
-- | Optional (markdown) manpages to be converted using pandoc.
[$sel:man:Pkg] :: Pkg -> Maybe Text
-- | Optional compleat completions to be installed alongside
-- package.
[$sel:completions:Pkg] :: Pkg -> Maybe Text
-- | Library version
[$sel:version:Pkg] :: Pkg -> Version
-- | Compiler version
[$sel:compiler:Pkg] :: Pkg -> Version
-- | List of library dependencies
[$sel:dependencies:Pkg] :: Pkg -> [LibDep]
-- | List of C library dependencies
[$sel:clib:Pkg] :: Pkg -> [LibDep]
-- | List of ATS library dependencies
[$sel:buildDeps:Pkg] :: Pkg -> [LibDep]
-- | The C compiler we should use
[$sel:ccompiler:Pkg] :: Pkg -> Text
-- | List of flags to pass to the C compiler
[$sel:cflags:Pkg] :: Pkg -> [Text]
-- | List of flags to pass to patsopt.
[$sel:atsFlags:Pkg] :: Pkg -> [Text]
-- | ATS source to be compile to C.
[$sel:atsSource:Pkg] :: Pkg -> [Src]
-- | Don't link statically, instead, use libraries installed by
-- atspkg.
[$sel:dynLink:Pkg] :: Pkg -> Bool
-- | Solver to use.
[$sel:extSolve:Pkg] :: Pkg -> Solver
-- | Optional specificiation as a debian package.
[$sel:debPkg:Pkg] :: Pkg -> Maybe Debian
-- | Whether to link/build atslib.
[$sel:atsLib:Pkg] :: Pkg -> Bool
data Bin
Bin :: Text -> Text -> [Text] -> [ForeignCabal] -> [TargetPair] -> Bool -> [Text] -> Bin
-- | Source file (should end with .dats)
[$sel:src:Bin] :: Bin -> Text
-- | Binary to be built
[$sel:target:Bin] :: Bin -> Text
-- | Libraries to link against (e.g. [ "pthread" ])
[$sel:libs:Bin] :: Bin -> [Text]
-- | Haskell .cabal files associated with the final library we
-- want to make
[$sel:hsDeps:Bin] :: Bin -> [ForeignCabal]
-- | List of sources and targets for hs2ats
[$sel:hs2ats:Bin] :: Bin -> [TargetPair]
-- | Whether to use the garbage collector
[$sel:gcBin:Bin] :: Bin -> Bool
-- | Extra source files the build depends on
[$sel:extras:Bin] :: Bin -> [Text]
data Lib
Lib :: Text -> [Text] -> Text -> [Text] -> [Text] -> [ForeignCabal] -> [(Text, Text)] -> [TargetPair] -> [Text] -> Bool -> Lib
-- | Name of library being provided
[$sel:name:Lib] :: Lib -> Text
-- | Source files (should end with .dats) to be compiled to object
-- files
[$sel:src:Lib] :: Lib -> [Text]
[$sel:libTarget:Lib] :: Lib -> Text
-- | Libraries to link against (e.g. [ "pthread" ])
[$sel:libs:Lib] :: Lib -> [Text]
-- | Include files to be installed with the library
[$sel:includes:Lib] :: Lib -> [Text]
-- | Haskell .cabal files associated with object files
[$sel:hsDeps:Lib] :: Lib -> [ForeignCabal]
-- | Generate link files.
[$sel:links:Lib] :: Lib -> [(Text, Text)]
-- | Sources and targets for hs2ats
[$sel:hs2ats:Lib] :: Lib -> [TargetPair]
-- | Other source files the build depends on
[$sel:extras:Lib] :: Lib -> [Text]
-- | Whether to make a static library
[$sel:static:Lib] :: Lib -> Bool
data Src
Src :: Text -> Text -> [TargetPair] -> [Text] -> Src
[$sel:atsSrc:Src] :: Src -> Text
[$sel:cTarget:Src] :: Src -> Text
[$sel:atsGen:Src] :: Src -> [TargetPair]
[$sel:extras:Src] :: Src -> [Text]
data ATSConstraint
ATSConstraint :: Maybe Version -> Maybe Version -> ATSConstraint
[$sel:lower:ATSConstraint] :: ATSConstraint -> Maybe Version
[$sel:upper:ATSConstraint] :: ATSConstraint -> Maybe Version
-- | Type for a dependency
data ATSDependency
ATSDependency :: Text -> Text -> Text -> Maybe Text -> Version -> [LibDep] -> [LibDep] -> [LibDep] -> [Text] -> ATSDependency
-- | Library name, e.g.
[$sel:libName:ATSDependency] :: ATSDependency -> Text
-- | Directory we should unpack to
[$sel:dir:ATSDependency] :: ATSDependency -> Text
-- | Url pointing to tarball
[$sel:url:ATSDependency] :: ATSDependency -> Text
-- | Package description
[$sel:description:ATSDependency] :: ATSDependency -> Maybe Text
[$sel:libVersion:ATSDependency] :: ATSDependency -> Version
-- | Dependencies to be unpacked
[$sel:libDeps:ATSDependency] :: ATSDependency -> [LibDep]
-- | Dependencies to be built
[$sel:libBldDeps:ATSDependency] :: ATSDependency -> [LibDep]
-- | C dependencies to be built
[$sel:libCDeps:ATSDependency] :: ATSDependency -> [LibDep]
-- | Optional build script for C library
[$sel:script:ATSDependency] :: ATSDependency -> [Text]
-- | This is just a tuple, except I can figure out how to use it with
-- Dhall.
data TargetPair
TargetPair :: Text -> Text -> Bool -> TargetPair
[$sel:hs:TargetPair] :: TargetPair -> Text
[$sel:ats:TargetPair] :: TargetPair -> Text
[$sel:cpphs:TargetPair] :: TargetPair -> Bool
data ForeignCabal
ForeignCabal :: Maybe Text -> Text -> Text -> ForeignCabal
[projectFile] :: ForeignCabal -> Maybe Text
[cabalFile] :: ForeignCabal -> Text
[objectFile] :: ForeignCabal -> Text
newtype ATSPackageSet
ATSPackageSet :: [ATSDependency] -> ATSPackageSet
[_atsPkgSet] :: ATSPackageSet -> [ATSDependency]
type LibDep = (Text, ATSConstraint)
-- | You likely want $sel:libDeps:ATSDependency or
-- $sel:libBldDeps:ATSDependency
type DepSelector = ATSDependency -> [LibDep]
data PackageError
Unrecognized :: String -> PackageError
DepErr :: ResolveError -> PackageError
data Debian
Debian :: Text -> Version -> Text -> Text -> Text -> Maybe Text -> [Text] -> [Text] -> [Text] -> Debian
[package] :: Debian -> Text
[version] :: Debian -> Version
[maintainer] :: Debian -> Text
[description] :: Debian -> Text
[target] :: Debian -> Text
[manpage] :: Debian -> Maybe Text
[binaries] :: Debian -> [Text]
[libraries] :: Debian -> [Text]
[headers] :: Debian -> [Text]
dirLens :: Lens' ATSDependency Text