HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

  • PackageAgda-2.8.0.2
  • Exports76
  • LanguageHaskell2010
  • LicenceMIT
  • SourceMonad.hs

The scope checking monad

4 declarations
typetype ScopeM = TCM
#

To simplify interaction between scope checking and type checking (in particular when chasing imports), we use the same monad.

General operations

29 declarations
valueoutsideLocalVars :: Int -> ScopeM a -> ScopeM a
#

Run a computation outside some number of local variables and add them back afterwards. This lets you bind variables in the middle of the context and is used when binding generalizable variables (#3735).

valuebindVarsToBind :: ScopeM ()
#

After collecting some variable names in the scopeVarsToBind, bind them all simultaneously.

Names

5 declarations

Create a concrete name that is not yet in scope. | NOTE: See chooseName in Agda.Syntax.Translation.AbstractToConcrete for similar logic. | NOTE: See withName in Agda.Syntax.Translation.ReflectedToAbstract for similar logic.

Resolving names

9 declarations

Look up the abstract name corresponding to a concrete name of a certain kind and/or from a given set of names. Sometimes we know already that we are dealing with a constructor or pattern synonym (e.g. when we have parsed a pattern). Then, we can ignore conflicting definitions of that name of a different kind. (See issue 822.)

Binding names

8 declarations

Operations to do with record constructor names

3 declarations

Is this the qualified name which refers to the constructor of an anonymous record (like Foo.constructor)?

If so, return the part of the name referring to the record (Foo).

Module manipulation operations

6 declarations

Import directives

8 declarations

Opening a module

4 declarations

Orphan instances

1 instance