| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Agda.Compiler.Backend.Base
Synopsis
- type BackendVersion = Text
 - data Backend_boot definition (tcm :: Type -> Type) where
- Backend :: forall opts definition (tcm :: Type -> Type) env menv mod def. NFData opts => Backend'_boot definition tcm opts env menv mod def -> Backend_boot definition tcm
 
 - data Backend'_boot definition (tcm :: Type -> Type) opts env menv mod def = Backend' {
- backendName :: BackendName
 - backendVersion :: Maybe BackendVersion
 - options :: opts
 - commandLineFlags :: [OptDescr (Flag opts)]
 - isEnabled :: opts -> Bool
 - preCompile :: opts -> tcm env
 - postCompile :: env -> IsMain -> Map TopLevelModuleName mod -> tcm ()
 - preModule :: env -> IsMain -> TopLevelModuleName -> Maybe FilePath -> tcm (Recompile menv mod)
 - postModule :: env -> menv -> IsMain -> TopLevelModuleName -> [def] -> tcm mod
 - compileDef :: env -> menv -> IsMain -> definition -> tcm def
 - scopeCheckingSuffices :: Bool
 - mayEraseType :: QName -> tcm Bool
 - backendInteractTop :: Maybe (BackendCommandTop tcm)
 - backendInteractHole :: Maybe (BackendCommandHole tcm)
 
 - data Recompile menv mod
 - type CommandPayload = String
 - type BackendCommandTop (tcm :: Type -> Type) = CommandPayload -> CommandM' tcm ()
 - type BackendCommandHole (tcm :: Type -> Type) = CommandPayload -> InteractionId -> Range -> String -> CommandM' tcm ()
 
Documentation
type BackendVersion = Text Source #
data Backend_boot definition (tcm :: Type -> Type) where Source #
Constructors
| Backend :: forall opts definition (tcm :: Type -> Type) env menv mod def. NFData opts => Backend'_boot definition tcm opts env menv mod def -> Backend_boot definition tcm | 
Instances
| NFData (Backend_boot definition tcm) Source # | |
Defined in Agda.Compiler.Backend.Base Methods rnf :: Backend_boot definition tcm -> () #  | |
data Backend'_boot definition (tcm :: Type -> Type) opts env menv mod def Source #
Constructors
| Backend' | |
Fields 
  | |
Instances
type CommandPayload = String Source #
For the sake of flexibility, we parametrize interactive commands with an arbitrary string payload, e.g. to allow extra user input, or have backends provide multiple commands with a single record field.
type BackendCommandTop (tcm :: Type -> Type) Source #
Arguments
| = CommandPayload | arbitrary user payload  | 
| -> CommandM' tcm () | 
The type of top-level backend interactive commmands.
type BackendCommandHole (tcm :: Type -> Type) Source #
Arguments
| = CommandPayload | arbitrary user payload  | 
| -> InteractionId | the hole's ID  | 
| -> Range | the hole's range  | 
| -> String | the hole's contents  | 
| -> CommandM' tcm () | 
The type of top-level backend interactive commmands.