| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.TypeChecking.Monad.State
Contents
Description
Lenses for TCState and more.
Synopsis
- resetState :: TCM ()
- resetAllState :: TCM ()
- localTCState :: TCM a -> TCM a
- localTCStateSaving :: TCM a -> TCM (a, TCState)
- freshTCM :: TCM a -> TCM (Either TCErr a)
- lensPersistentState :: Lens' PersistentTCState TCState
- updatePersistentState :: (PersistentTCState -> PersistentTCState) -> TCState -> TCState
- modifyPersistentState :: (PersistentTCState -> PersistentTCState) -> TCM ()
- lensAccumStatisticsP :: Lens' Statistics PersistentTCState
- lensAccumStatistics :: Lens' Statistics TCState
- getScope :: TCM ScopeInfo
- setScope :: ScopeInfo -> TCM ()
- modifyScope_ :: (ScopeInfo -> ScopeInfo) -> TCM ()
- modifyScope :: (ScopeInfo -> ScopeInfo) -> TCM ()
- withScope :: ScopeInfo -> TCM a -> TCM (a, ScopeInfo)
- withScope_ :: ScopeInfo -> TCM a -> TCM a
- localScope :: TCM a -> TCM a
- notInScope :: QName -> TCM a
- printScope :: String -> Int -> String -> TCM ()
- modifySignature :: (Signature -> Signature) -> TCM ()
- modifyImportedSignature :: (Signature -> Signature) -> TCM ()
- getSignature :: TCM Signature
- modifyGlobalDefinition :: QName -> (Definition -> Definition) -> TCM ()
- setSignature :: Signature -> TCM ()
- withSignature :: Signature -> TCM a -> TCM a
- addRewriteRulesFor :: QName -> RewriteRules -> [QName] -> Signature -> Signature
- lookupDefinition :: QName -> Signature -> Maybe Definition
- updateDefinitions :: (Definitions -> Definitions) -> Signature -> Signature
- updateDefinition :: QName -> (Definition -> Definition) -> Signature -> Signature
- updateTheDef :: (Defn -> Defn) -> Definition -> Definition
- updateDefType :: (Type -> Type) -> Definition -> Definition
- updateDefArgOccurrences :: ([Occurrence] -> [Occurrence]) -> Definition -> Definition
- updateDefPolarity :: ([Polarity] -> [Polarity]) -> Definition -> Definition
- updateDefCompiledRep :: (CompiledRepresentation -> CompiledRepresentation) -> Definition -> Definition
- addCompilerPragma :: BackendName -> CompilerPragma -> Definition -> Definition
- updateFunClauses :: ([Clause] -> [Clause]) -> Defn -> Defn
- updateCompiledClauses :: (Maybe CompiledClauses -> Maybe CompiledClauses) -> Defn -> Defn
- updateFunCopatternLHS :: (Bool -> Bool) -> Defn -> Defn
- setTopLevelModule :: QName -> TCM ()
- withTopLevelModule :: QName -> TCM a -> TCM a
- addForeignCode :: BackendName -> String -> TCM ()
- addDeprecatedForeignCode :: String -> BackendName -> String -> TCM ()
- addHaskellImport :: String -> TCM ()
- addHaskellImportUHC :: String -> TCM ()
- addInlineHaskell :: String -> TCM ()
- getInteractionOutputCallback :: TCM InteractionOutputCallback
- appInteractionOutputCallback :: Response -> TCM ()
- setInteractionOutputCallback :: InteractionOutputCallback -> TCM ()
- getPatternSyns :: TCM PatternSynDefns
- setPatternSyns :: PatternSynDefns -> TCM ()
- modifyPatternSyns :: (PatternSynDefns -> PatternSynDefns) -> TCM ()
- getPatternSynImports :: TCM PatternSynDefns
- getAllPatternSyns :: TCM PatternSynDefns
- lookupPatternSyn :: AmbiguousQName -> TCM PatternSynDefn
- lookupSinglePatternSyn :: QName -> TCM PatternSynDefn
- theBenchmark :: TCState -> Benchmark
- updateBenchmark :: (Benchmark -> Benchmark) -> TCState -> TCState
- getBenchmark :: TCM Benchmark
- modifyBenchmark :: (Benchmark -> Benchmark) -> TCM ()
- addImportedInstances :: Signature -> TCM ()
- updateInstanceDefs :: (TempInstanceTable -> TempInstanceTable) -> TCState -> TCState
- modifyInstanceDefs :: (TempInstanceTable -> TempInstanceTable) -> TCM ()
- getAllInstanceDefs :: TCM TempInstanceTable
- getAnonInstanceDefs :: TCM (Set QName)
- clearAnonInstanceDefs :: TCM ()
- addUnknownInstance :: QName -> TCM ()
- addNamedInstance :: QName -> QName -> TCM ()
Documentation
resetState :: TCM () #
Resets the non-persistent part of the type checking state.
resetAllState :: TCM () #
Resets all of the type checking state.
Keep only Benchmark and backend information.
localTCState :: TCM a -> TCM a #
Restore TCState after performing subcomputation.
In contrast to localState, the Benchmark
info from the subcomputation is saved.
localTCStateSaving :: TCM a -> TCM (a, TCState) #
Same as localTCState but also returns the state in which we were just
before reverting it.
freshTCM :: TCM a -> TCM (Either TCErr a) #
A fresh TCM instance.
The computation is run in a fresh state, with the exception that the persistent state is preserved. If the computation changes the state, then these changes are ignored, except for changes to the persistent state. (Changes to the persistent state are also ignored if errors other than type errors or IO exceptions are encountered.)
Lens for persistent states and its fields
updatePersistentState :: (PersistentTCState -> PersistentTCState) -> TCState -> TCState #
modifyPersistentState :: (PersistentTCState -> PersistentTCState) -> TCM () #
Scope
modifyScope_ :: (ScopeInfo -> ScopeInfo) -> TCM () #
Modify the current scope without updating the inverse maps.
modifyScope :: (ScopeInfo -> ScopeInfo) -> TCM () #
Modify the current scope.
withScope_ :: ScopeInfo -> TCM a -> TCM a #
Same as withScope, but discard the scope from the computation.
localScope :: TCM a -> TCM a #
Discard any changes to the scope by a computation.
notInScope :: QName -> TCM a #
Scope error.
Signature
Lens for stSignature and stImports
modifySignature :: (Signature -> Signature) -> TCM () #
modifyImportedSignature :: (Signature -> Signature) -> TCM () #
modifyGlobalDefinition :: QName -> (Definition -> Definition) -> TCM () #
Update a possibly imported definition. Warning: changes made to imported definitions (during type checking) will not persist outside the current module. This function is currently used to update the compiled representation of a function during compilation.
setSignature :: Signature -> TCM () #
withSignature :: Signature -> TCM a -> TCM a #
Run some computation in a different signature, restore original signature.
Modifiers for rewrite rules
addRewriteRulesFor :: QName -> RewriteRules -> [QName] -> Signature -> Signature #
Modifiers for parts of the signature
lookupDefinition :: QName -> Signature -> Maybe Definition #
updateDefinitions :: (Definitions -> Definitions) -> Signature -> Signature #
updateDefinition :: QName -> (Definition -> Definition) -> Signature -> Signature #
updateTheDef :: (Defn -> Defn) -> Definition -> Definition #
updateDefType :: (Type -> Type) -> Definition -> Definition #
updateDefArgOccurrences :: ([Occurrence] -> [Occurrence]) -> Definition -> Definition #
updateDefPolarity :: ([Polarity] -> [Polarity]) -> Definition -> Definition #
updateDefCompiledRep :: (CompiledRepresentation -> CompiledRepresentation) -> Definition -> Definition #
addCompilerPragma :: BackendName -> CompilerPragma -> Definition -> Definition #
updateCompiledClauses :: (Maybe CompiledClauses -> Maybe CompiledClauses) -> Defn -> Defn #
Top level module
setTopLevelModule :: QName -> TCM () #
Set the top-level module. This affects the global module id of freshly generated names.
withTopLevelModule :: QName -> TCM a -> TCM a #
Use a different top-level module for a computation. Used when generating names for imported modules.
Foreign code
addForeignCode :: BackendName -> String -> TCM () #
Temporary: Haskell imports
addDeprecatedForeignCode :: String -> BackendName -> String -> TCM () #
addHaskellImport :: String -> TCM () #
Tell the compiler to import the given Haskell module.
addHaskellImportUHC :: String -> TCM () #
Tell the compiler to import the given Haskell module.
addInlineHaskell :: String -> TCM () #
Interaction output callback
appInteractionOutputCallback :: Response -> TCM () #
Pattern synonyms
setPatternSyns :: PatternSynDefns -> TCM () #
modifyPatternSyns :: (PatternSynDefns -> PatternSynDefns) -> TCM () #
Lens for stPatternSyns.
getAllPatternSyns :: TCM PatternSynDefns #
Get both local and imported pattern synonyms
Benchmark
Instance definitions
addImportedInstances :: Signature -> TCM () #
Look through the signature and reconstruct the instance table.
updateInstanceDefs :: (TempInstanceTable -> TempInstanceTable) -> TCState -> TCState #
Lens for stInstanceDefs.
modifyInstanceDefs :: (TempInstanceTable -> TempInstanceTable) -> TCM () #
getAnonInstanceDefs :: TCM (Set QName) #
clearAnonInstanceDefs :: TCM () #
Remove all instances whose type is still unresolved.
addUnknownInstance :: QName -> TCM () #
Add an instance whose type is still unresolved.
Add instance to some `class'.