HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduleghc-9.10.3GHC2021

GHC.Types.Target

  • 3 types
  • 2 values
  • Packageghc-9.10.3
  • Exports5
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceTarget.hs
datadata Target
#

A compilation target.

A target may be supplied with the actual text of the module. If so, use this instead of the file contents (this is for use in an IDE where the file hasn't been saved by the user yet).

These fields are strict because Targets are long lived.

Constructors

  • Target
    • targetId :: !TargetId

      module or filename

    • targetAllowObjCode :: !Bool

      object code allowed?

    • targetUnitId :: !UnitId

      id of the unit this target is part of

    • targetContents :: !Maybe (InputFileBuffer, UTCTime)

      Optional in-memory buffer containing the source code GHC should use for this target instead of reading it from disk.

      Since GHC version 8.10 modules which require preprocessors such as Literate Haskell or CPP to run are also supported.

      If a corresponding source file does not exist on disk this will result in a SourceError exception if targetId = TargetModule _ is used. However together with targetId = TargetFile _ GHC will not complain about the file missing.

Instances1Outputable
datadata TargetId
#

Constructors

  • TargetModule !ModuleName

    A module name: search for the file

  • TargetFile !FilePath !(Maybe Phase)

    A filename: preprocess & parse it to find the module name. If specified, the Phase indicates how to compile this file (which phase to start from). Nothing indicates the starting phase should be determined from the suffix of the filename.

Instances2Eq, Outputable