Agda-2.4.0: A dependently typed functional programming language and proof assistant

Safe HaskellNone

Agda.TypeChecking.Monad.MetaVars

Contents

Synopsis

Documentation

dontAssignMetas :: TCM a -> TCM aSource

Switch off assignment of metas.

getMetaStore :: TCM MetaStoreSource

Get the meta store.

lookupMeta :: MetaId -> TCM MetaVariableSource

Lookup a meta variable

getMetaTypeInContext :: MetaId -> TCM TypeSource

Given a meta, return the type applied to the current context.

createMetaInfo :: TCM MetaInfoSource

Create MetaInfo in the current environment.

Query and manipulate interaction points.

registerInteractionPoint :: Range -> Maybe Nat -> TCM InteractionIdSource

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 InteractionPointSource

Get the information associated to an interaction point.

lookupInteractionId :: InteractionId -> TCM MetaIdSource

Get MetaId for an interaction point. Precondition: interaction point is connected.

newMeta :: MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaIdSource

Generate new meta variable.

newMeta' :: MetaInstantiation -> MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> TCM MetaIdSource

Generate a new meta variable with some instantiation given. For instance, the instantiation could be a PostponedTypeCheckingProblem.

getInteractionRange :: InteractionId -> TCM RangeSource

Get the Range for an interaction point.

getMetaRange :: MetaId -> TCM RangeSource

Get the Range for a meta variable.

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.

Freezing and unfreezing metas.

freezeMetas :: TCM ()Source

Freeze all meta variables.

unfreezeMetas :: TCM ()Source

Thaw all meta variables.

class UnFreezeMeta a whereSource

Unfreeze meta and its type if this is a meta again. Does not unfreeze deep occurrences of metas.

Methods

unfreezeMeta :: a -> TCM ()Source