ghc-9.13: The GHC API
GHC's functionality can be useful for more things than just compiling Haskell programs. Important use cases are programs that analyse (and perhaps transform) Haskell code. Others include loading Haskell code dynamically in a GHCi-like manner. For this reason, a lot of GHC's functionality is made available through this package.
See https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler for more information.
This package is not PVP-compliant.
This package directly exposes GHC internals, which can and do change with every release.
- GHC
- Builtin
- ByteCode
- GHC.Cmm
- GHC.Cmm.BlockId
- GHC.Cmm.CLabel
- GHC.Cmm.CallConv
- GHC.Cmm.CommonBlockElim
- GHC.Cmm.Config
- GHC.Cmm.ContFlowOpt
- GHC.Cmm.Dataflow
- GHC.Cmm.DebugBlock
- GHC.Cmm.Dominators
- GHC.Cmm.Expr
- GHC.Cmm.GenericOpt
- GHC.Cmm.Graph
- GHC.Cmm.Info
- GHC.Cmm.InitFini
- GHC.Cmm.LRegSet
- GHC.Cmm.LayoutStack
- GHC.Cmm.Lexer
- GHC.Cmm.Lint
- GHC.Cmm.Liveness
- GHC.Cmm.MachOp
- GHC.Cmm.Node
- GHC.Cmm.Opt
- GHC.Cmm.Parser
- GHC.Cmm.Pipeline
- GHC.Cmm.ProcPoint
- GHC.Cmm.Reducibility Tell if a
CmmGraph
is reducible, or make it so - GHC.Cmm.Reg
- GHC.Cmm.Sink
- GHC.Cmm.Switch
- GHC.Cmm.ThreadSanitizer
- GHC.Cmm.Type
- GHC.Cmm.UniqueRenamer
- GHC.Cmm.Utils
- GHC.CmmToAsm
- GHC.CmmToAsm.AArch64
- GHC.CmmToAsm.BlockLayout
- GHC.CmmToAsm.CFG
- GHC.CmmToAsm.CPrim
- GHC.CmmToAsm.Config
- GHC.CmmToAsm.Dwarf
- GHC.CmmToAsm.Format
- GHC.CmmToAsm.Instr
- GHC.CmmToAsm.Monad
- GHC.CmmToAsm.PIC
- GHC.CmmToAsm.PPC
- GHC.CmmToAsm.Ppr
- GHC.CmmToAsm.RV64
- Reg
- GHC.CmmToAsm.Reg.Graph
- GHC.CmmToAsm.Reg.Linear
- GHC.CmmToAsm.Reg.Linear.AArch64
- GHC.CmmToAsm.Reg.Linear.Base
- GHC.CmmToAsm.Reg.Linear.FreeRegs
- GHC.CmmToAsm.Reg.Linear.JoinToTargets
- GHC.CmmToAsm.Reg.Linear.PPC
- GHC.CmmToAsm.Reg.Linear.RV64
- GHC.CmmToAsm.Reg.Linear.StackMap
- GHC.CmmToAsm.Reg.Linear.State
- GHC.CmmToAsm.Reg.Linear.Stats
- GHC.CmmToAsm.Reg.Linear.X86
- GHC.CmmToAsm.Reg.Linear.X86_64
- GHC.CmmToAsm.Reg.Liveness
- GHC.CmmToAsm.Reg.Target
- GHC.CmmToAsm.Reg.Utils
- GHC.CmmToAsm.Types
- GHC.CmmToAsm.Utils
- GHC.CmmToAsm.Wasm
- GHC.CmmToAsm.X86
- GHC.CmmToC
- GHC.CmmToLlvm
- GHC.Core
- GHC.Core.Class
- GHC.Core.Coercion
- GHC.Core.ConLike
- GHC.Core.DataCon
- GHC.Core.FVs
- GHC.Core.FamInstEnv
- GHC.Core.InstEnv
- GHC.Core.LateCC
- GHC.Core.Lint
- GHC.Core.Make
- Map
- GHC.Core.Multiplicity
- Opt
- GHC.Core.Opt.Arity
- GHC.Core.Opt.CSE
- GHC.Core.Opt.CallArity
- GHC.Core.Opt.CallerCC
- GHC.Core.Opt.ConstantFold
- GHC.Core.Opt.CprAnal
- GHC.Core.Opt.DmdAnal
- GHC.Core.Opt.Exitify
- GHC.Core.Opt.FloatIn
- GHC.Core.Opt.FloatOut
- GHC.Core.Opt.LiberateCase
- GHC.Core.Opt.Monad
- GHC.Core.Opt.OccurAnal
- GHC.Core.Opt.Pipeline
- GHC.Core.Opt.SetLevels
- GHC.Core.Opt.Simplify
- GHC.Core.Opt.SpecConstr
- GHC.Core.Opt.Specialise
- GHC.Core.Opt.StaticArgs
- GHC.Core.Opt.Stats
- GHC.Core.Opt.WorkWrap
- GHC.Core.PatSyn
- GHC.Core.Ppr
- GHC.Core.Predicate
- GHC.Core.Reduction
- GHC.Core.RoughMap
- GHC.Core.Rules
- GHC.Core.Seq
- GHC.Core.SimpleOpt
- GHC.Core.Stats
- GHC.Core.Subst
- GHC.Core.Tidy
- TyCo
- GHC.Core.TyCon
- GHC.Core.Type
- GHC.Core.Unfold
- GHC.Core.Unify
- GHC.Core.UsageEnv
- GHC.Core.Utils
- GHC.CoreToIface
- GHC.CoreToStg
- Data
- GHC.Data.Bag
- GHC.Data.Bitmap
- GHC.Data.Bool
- GHC.Data.BooleanFormula
- GHC.Data.EnumSet
- GHC.Data.FastMutInt
- GHC.Data.FastString
- GHC.Data.FiniteMap
- GHC.Data.FlatBag
- Graph
- GHC.Data.IOEnv
- List
- GHC.Data.Maybe
- GHC.Data.OrdList
- GHC.Data.OsPath
- GHC.Data.Pair
- GHC.Data.SmallArray
- GHC.Data.Stream
- GHC.Data.Strict
- GHC.Data.StringBuffer
- GHC.Data.TrieMap
- GHC.Data.Unboxed
- GHC.Data.UnionFind
- GHC.Data.Word64Map
- GHC.Data.Word64Set
- Driver
- GHC.Driver.Backend Back ends for code generation
- GHC.Driver.Backend.Internal Interface for migrating legacy clients of the GHC API
- GHC.Driver.Backpack
- GHC.Driver.CmdLine
- GHC.Driver.CodeOutput
- GHC.Driver.Config
- GHC.Driver.Config.Cmm
- GHC.Driver.Config.CmmToAsm
- GHC.Driver.Config.CmmToLlvm
- Core
- GHC.Driver.Config.CoreToStg
- GHC.Driver.Config.Diagnostic
- GHC.Driver.Config.Finder
- GHC.Driver.Config.HsToCore
- GHC.Driver.Config.Linker
- GHC.Driver.Config.Logger
- GHC.Driver.Config.Parser
- Stg
- GHC.Driver.Config.StgToCmm
- GHC.Driver.Config.StgToJS
- GHC.Driver.Config.Tidy
- GHC.Driver.DynFlags
- GHC.Driver.Env
- GHC.Driver.Errors
- GHC.Driver.Flags
- GHC.Driver.GenerateCgIPEStub
- GHC.Driver.Hooks
- GHC.Driver.LlvmConfigCache
- GHC.Driver.Main
- GHC.Driver.Make
- GHC.Driver.MakeFile
- GHC.Driver.MakeSem
- GHC.Driver.Monad
- GHC.Driver.Phases
- GHC.Driver.Pipeline
- GHC.Driver.Plugins
- GHC.Driver.Ppr
- GHC.Driver.Session
- GHC.Driver.Backend Back ends for code generation
- GHC.Hs
- GHC.HsToCore
- GHC.HsToCore.Arrows
- GHC.HsToCore.Binds
- GHC.HsToCore.Breakpoints
- GHC.HsToCore.Coverage
- GHC.HsToCore.Docs
- Errors
- GHC.HsToCore.Expr
- Foreign
- GHC.HsToCore.GuardedRHSs
- GHC.HsToCore.ListComp
- GHC.HsToCore.Match
- GHC.HsToCore.Monad
- GHC.HsToCore.Pmc
- GHC.HsToCore.Quote
- GHC.HsToCore.Ticks
- GHC.HsToCore.Types
- GHC.HsToCore.Usage
- GHC.HsToCore.Utils
- Iface
- GHC.IfaceToCore
- JS
- Linker
- GHC.Llvm
- GHC.Parser
- GHC.Platform
- GHC.Plugins
- GHC.Prelude
- Rename
- Runtime
- GHC.Settings
- Stg
- GHC.StgToByteCode
- GHC.StgToCmm
- GHC.StgToCmm.ArgRep
- GHC.StgToCmm.Bind
- GHC.StgToCmm.CgUtils
- GHC.StgToCmm.Closure
- GHC.StgToCmm.Config
- GHC.StgToCmm.DataCon
- GHC.StgToCmm.Env
- GHC.StgToCmm.Expr
- GHC.StgToCmm.ExtCode
- GHC.StgToCmm.Foreign
- GHC.StgToCmm.Heap
- GHC.StgToCmm.Hpc
- GHC.StgToCmm.InfoTableProv
- GHC.StgToCmm.Layout
- GHC.StgToCmm.Lit
- GHC.StgToCmm.Monad
- GHC.StgToCmm.Prim
- GHC.StgToCmm.Prof
- GHC.StgToCmm.Sequel
- GHC.StgToCmm.TagCheck
- GHC.StgToCmm.Ticky
- GHC.StgToCmm.Types
- GHC.StgToCmm.Utils
- GHC.StgToJS
- GHC.StgToJS.Apply
- GHC.StgToJS.Arg
- GHC.StgToJS.Closure
- GHC.StgToJS.CodeGen
- GHC.StgToJS.DataCon
- GHC.StgToJS.Deps
- GHC.StgToJS.Expr
- GHC.StgToJS.ExprCtx
- GHC.StgToJS.FFI
- GHC.StgToJS.Heap
- GHC.StgToJS.Ids
- Linker
- GHC.StgToJS.Literal
- GHC.StgToJS.Monad
- GHC.StgToJS.Object
- GHC.StgToJS.Prim
- GHC.StgToJS.Profiling
- GHC.StgToJS.Regs
- Rts
- Sinker
- GHC.StgToJS.Stack
- GHC.StgToJS.StaticPtr
- GHC.StgToJS.Symbols
- GHC.StgToJS.Types
- GHC.StgToJS.Utils
- GHC.SysTools
- Tc
- GHC.ThToHs
- Types
- GHC.Types.Annotations
- GHC.Types.Avail
- GHC.Types.Basic
- GHC.Types.Breakpoint
- GHC.Types.CompleteMatch
- GHC.Types.CostCentre
- GHC.Types.Cpr
- GHC.Types.DefaultEnv
- GHC.Types.Demand
- GHC.Types.Error
- GHC.Types.FieldLabel
- GHC.Types.Fixity
- GHC.Types.ForeignCall
- GHC.Types.ForeignStubs
- GHC.Types.GREInfo
- GHC.Types.Hint
- GHC.Types.HpcInfo
- GHC.Types.IPE
- GHC.Types.Id
- GHC.Types.Literal
- GHC.Types.Meta
- GHC.Types.Name
- GHC.Types.PkgQual
- GHC.Types.ProfAuto
- GHC.Types.RepType
- GHC.Types.SafeHaskell
- GHC.Types.SaneDouble
- GHC.Types.SourceError
- GHC.Types.SourceFile
- GHC.Types.SourceText
- GHC.Types.SptEntry
- GHC.Types.SrcLoc
- GHC.Types.Target
- GHC.Types.Tickish
- GHC.Types.TyThing
- GHC.Types.TypeEnv
- GHC.Types.Unique
- GHC.Types.Var
- GHC.Unit
- Utils
- GHC.Utils.Asm
- GHC.Utils.Binary
- GHC.Utils.BufHandle
- GHC.Utils.CliOption
- GHC.Utils.Constants
- Containers
- GHC.Utils.Error
- GHC.Utils.Exception
- GHC.Utils.FV
- GHC.Utils.Fingerprint
- GHC.Utils.GlobalVars
- IO
- GHC.Utils.Json
- GHC.Utils.Lexeme
- GHC.Utils.Logger
- GHC.Utils.Misc
- GHC.Utils.Monad
- GHC.Utils.Outputable
- GHC.Utils.Panic
- GHC.Utils.Ppr
- GHC.Utils.TmpFs
- GHC.Utils.Touch
- GHC.Utils.Trace
- GHC.Utils.Unique
- GHC.Utils.Word64
- Wasm
- Language
- Haskell
- Language.Haskell.Syntax
- Language.Haskell.Syntax.Basic
- Language.Haskell.Syntax.Binds
- Language.Haskell.Syntax.Decls
- Language.Haskell.Syntax.Expr
- Language.Haskell.Syntax.Extension
- Language.Haskell.Syntax.ImpExp
- Language.Haskell.Syntax.Lit
- Module
- Language.Haskell.Syntax.Pat
- Language.Haskell.Syntax.Specificity
- Language.Haskell.Syntax.Type
- Language.Haskell.Syntax
- Haskell