Safe Haskell | None |
---|---|
Language | Haskell98 |
- dontAssignMetas :: TCM a -> TCM a
- getMetaStore :: TCM MetaStore
- modifyMetaStore :: (MetaStore -> MetaStore) -> TCM ()
- lookupMeta :: MetaId -> TCM MetaVariable
- updateMetaVar :: MetaId -> (MetaVariable -> MetaVariable) -> TCM ()
- getMetaPriority :: MetaId -> TCM MetaPriority
- isSortMeta :: MetaId -> TCM Bool
- isSortMeta_ :: MetaVariable -> Bool
- getMetaType :: MetaId -> TCM Type
- getMetaTypeInContext :: MetaId -> TCM Type
- class IsInstantiatedMeta a where
- isInstantiatedMeta :: a -> TCM Bool
- isInstantiatedMeta' :: MetaId -> TCM (Maybe Term)
- createMetaInfo :: TCM MetaInfo
- createMetaInfo' :: RunMetaOccursCheck -> TCM MetaInfo
- setValueMetaName :: Term -> MetaNameSuggestion -> TCM ()
- getMetaNameSuggestion :: MetaId -> TCM MetaNameSuggestion
- setMetaNameSuggestion :: MetaId -> MetaNameSuggestion -> TCM ()
- updateMetaVarRange :: MetaId -> Range -> TCM ()
- modifyInteractionPoints :: (InteractionPoints -> InteractionPoints) -> TCM ()
- registerInteractionPoint :: Range -> Maybe Nat -> TCM InteractionId
- connectInteractionPoint :: InteractionId -> MetaId -> TCM ()
- removeInteractionPoint :: InteractionId -> TCM ()
- getInteractionPoints :: TCM [InteractionId]
- getInteractionMetas :: TCM [MetaId]
- getInteractionIdsAndMetas :: TCM [(InteractionId, MetaId)]
- isInteractionMeta :: MetaId -> TCM (Maybe InteractionId)
- lookupInteractionPoint :: InteractionId -> TCM InteractionPoint
- lookupInteractionId :: InteractionId -> TCM MetaId
- newMeta :: MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaId
- newMeta' :: MetaInstantiation -> MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaId
- getInteractionRange :: InteractionId -> TCM Range
- getMetaRange :: MetaId -> TCM Range
- getInteractionScope :: InteractionId -> TCM ScopeInfo
- withMetaInfo' :: MetaVariable -> TCM a -> TCM a
- withMetaInfo :: Closure Range -> TCM a -> TCM a
- getInstantiatedMetas :: TCM [MetaId]
- getOpenMetas :: TCM [MetaId]
- listenToMeta :: Listener -> MetaId -> TCM ()
- unlistenToMeta :: Listener -> MetaId -> TCM ()
- getMetaListeners :: MetaId -> TCM [Listener]
- clearMetaListeners :: MetaId -> TCM ()
- freezeMetas :: TCM ()
- unfreezeMetas :: TCM ()
- isFrozen :: MetaId -> TCM Bool
- class UnFreezeMeta a where
- unfreezeMeta :: a -> TCM ()
Documentation
dontAssignMetas :: TCM a -> TCM a Source
Switch off assignment of metas.
getMetaStore :: TCM MetaStore Source
Get the meta store.
modifyMetaStore :: (MetaStore -> MetaStore) -> TCM () Source
lookupMeta :: MetaId -> TCM MetaVariable Source
Lookup a meta variable
updateMetaVar :: MetaId -> (MetaVariable -> MetaVariable) -> TCM () Source
isSortMeta :: MetaId -> TCM Bool Source
isSortMeta_ :: MetaVariable -> Bool Source
getMetaType :: MetaId -> TCM Type Source
getMetaTypeInContext :: MetaId -> TCM Type Source
Given a meta, return the type applied to the current context.
class IsInstantiatedMeta a where Source
Check whether all metas are instantiated. Precondition: argument is a meta (in some form) or a list of metas.
isInstantiatedMeta :: a -> TCM Bool Source
IsInstantiatedMeta MetaId | |
IsInstantiatedMeta LevelAtom | |
IsInstantiatedMeta PlusLevel | |
IsInstantiatedMeta Level | |
IsInstantiatedMeta Term | |
IsInstantiatedMeta a => IsInstantiatedMeta [a] | |
IsInstantiatedMeta a => IsInstantiatedMeta (Maybe a) | |
IsInstantiatedMeta a => IsInstantiatedMeta (Abs a) | Does not worry about raising. |
IsInstantiatedMeta a => IsInstantiatedMeta (Arg c a) |
createMetaInfo :: TCM MetaInfo Source
Create MetaInfo
in the current environment.
setValueMetaName :: Term -> MetaNameSuggestion -> TCM () Source
setMetaNameSuggestion :: MetaId -> MetaNameSuggestion -> TCM () Source
updateMetaVarRange :: MetaId -> Range -> TCM () Source
Query and manipulate interaction points.
modifyInteractionPoints :: (InteractionPoints -> InteractionPoints) -> TCM () Source
registerInteractionPoint :: Range -> Maybe Nat -> TCM InteractionId Source
Register an interaction point during scope checking. If there is no interaction id yet, create one.
connectInteractionPoint :: InteractionId -> MetaId -> TCM () Source
Hook up meta variable to interaction point.
removeInteractionPoint :: InteractionId -> TCM () Source
Move an interaction point from the current ones to the old ones.
getInteractionPoints :: TCM [InteractionId] Source
Get a list of interaction ids.
getInteractionMetas :: TCM [MetaId] Source
Get all metas that correspond to interaction ids.
getInteractionIdsAndMetas :: TCM [(InteractionId, MetaId)] Source
Get all metas that correspond to interaction ids.
isInteractionMeta :: MetaId -> TCM (Maybe InteractionId) Source
Does the meta variable correspond to an interaction point?
Time: O(n)
where n
is the number of interaction metas.
lookupInteractionPoint :: InteractionId -> TCM InteractionPoint Source
Get the information associated to an interaction point.
lookupInteractionId :: InteractionId -> TCM MetaId Source
Get MetaId
for an interaction point.
Precondition: interaction point is connected.
newMeta :: MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaId Source
Generate new meta variable.
newMeta' :: MetaInstantiation -> MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaId Source
Generate a new meta variable with some instantiation given.
For instance, the instantiation could be a PostponedTypeCheckingProblem
.
getInteractionRange :: InteractionId -> TCM Range Source
Get the Range
for an interaction point.
withMetaInfo' :: MetaVariable -> TCM a -> TCM a Source
getOpenMetas :: TCM [MetaId] Source
listenToMeta :: Listener -> MetaId -> TCM () Source
listenToMeta l m
: register l
as a listener to m
. This is done
when the type of l is blocked by m
.
unlistenToMeta :: Listener -> MetaId -> TCM () Source
Unregister a listener.
getMetaListeners :: MetaId -> TCM [Listener] Source
Get the listeners to a meta.
clearMetaListeners :: MetaId -> TCM () Source
Freezing and unfreezing metas.
freezeMetas :: TCM () Source
Freeze all meta variables.
unfreezeMetas :: TCM () Source
Thaw all meta variables.
class UnFreezeMeta a where Source
Unfreeze meta and its type if this is a meta again. Does not unfreeze deep occurrences of metas.
unfreezeMeta :: a -> TCM () Source