ghc-mod-4.1.6: Happy Haskell Programming

Safe HaskellNone




Low level access to the ghc-mod library.



type GHCOption = StringSource

A single GHC command line option.

type Package = (PackageBaseName, PackageVersion, PackageId)Source

A package's name, verson and id.

type PackageBaseName = StringSource

A package name.

type PackageVersion = StringSource

A package version.

type PackageId = StringSource

A package id.

type IncludeDir = FilePathSource

An include directory for modules.

data CompilerOptions Source

Option information for GHC




ghcOptions :: [GHCOption]

Command line options

includeDirs :: [IncludeDir]

Include directories for modules

depPackages :: [Package]

Dependent package names

Cabal API

parseCabalFile :: FilePath -> IO PackageDescriptionSource

Parsing a cabal file and returns PackageDescription. IOException is thrown if parsing fails.

getCompilerOptions :: [GHCOption] -> Cradle -> PackageDescription -> IO CompilerOptionsSource

Getting necessary CompilerOptions from three information sources.

cabalAllBuildInfo :: PackageDescription -> [BuildInfo]Source

Extracting all BuildInfo for libraries, executables, and tests.

cabalDependPackages :: [BuildInfo] -> [PackageBaseName]Source

Extracting package names of dependency.

cabalSourceDirs :: [BuildInfo] -> [IncludeDir]Source

Extracting include directories for modules.

cabalAllTargets :: PackageDescription -> IO ([String], [String], [String], [String])Source

Extracting all Module FilePaths for libraries, executables, tests and benchmarks.


getSystemLibDir :: IO (Maybe FilePath)Source

Obtaining the directory for system libraries.

getDynamicFlags :: IO DynFlagsSource

Return the DynFlags currently in use in the GHC session.

Initializing DynFlags

initializeFlagsWithCradle :: GhcMonad m => Options -> Cradle -> m ()Source

Initialize the DynFlags relating to the compilation of a single file or GHC session according to the Cradle and Options provided.


setTargetFiles :: GhcMonad m => [FilePath] -> m ()Source

Set the files as targets and load them.


withLogger :: Options -> (DynFlags -> DynFlags) -> Ghc () -> Ghc (Either String String)Source

Set the session flag (e.g. -Wall or -w:) then executes a body. Log messages are returned as String. Right is success and Left is failure.

Ghc Choice

(||>) :: Ghc a -> Ghc a -> Ghc aSource

Try the left Ghc action. If IOException occurs, try the right Ghc action.

goNext :: Ghc aSource

Go to the next Ghc monad by throwing AltGhcgoNext.

runAnyOne :: [Ghc a] -> Ghc aSource

Run any one Ghc monad.

GhcMonad Choice

(|||>) :: GhcMonad m => m a -> m a -> m aSource

Try the left GhcMonad action. If IOException occurs, try the right GhcMonad action.