HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

ModuleAgda-2.7.0.1Haskell2010

Agda.TypeChecking.Rules.Decl

  • 2 types
  • 1 class
  • 31 values
  • PackageAgda-2.7.0.1
  • Exports34
  • LanguageHaskell2010
  • LicenceMIT
  • SourceDecl.hs

Check if there is a inferred eta record type in the mutual block. If yes, repeat the record pattern translation for all function definitions in the block. This is necessary since the original record pattern translation will have skipped record patterns of the new record types (as eta was off for them). See issue #2308 (and #2197).

Instantiate all metas in Definition associated to QName. Makes sense after freezing metas. Some checks, like free variable analysis, are not in TCM, so they will be more precise (see issue 1099) after meta instantiation. Precondition: name has been added to signature already.

Highlight a declaration. Called after checking a mutual block (to ensure we have the right definitions for all names). For modules inside mutual blocks we haven't highlighted their contents, but for modules not in a mutual block we have. Hence the flag.

Check that all coinductive records are actually recursive. (Otherwise, one can implement invalid recursion schemes just like for the old coinduction.)

Check a set of mutual names for projection likeness.

Only a single, non-abstract function can be projection-like. Making an abstract function projection-like would break the invariant that the type of the principle argument of a projection-like function is always inferable.

valuecheckModuleArity
  1. :: ModuleName

    Name of applied module.

  2. -> Telescope

    The module parameters.

  3. -> [NamedArg Expr]

    The arguments this module is applied to.

  4. -> TCM Telescope

    The remaining module parameters (has free de Bruijn indices!).

#

Helper for checkSectionApplication.

Matches the arguments of the module application with the module parameters.

Returns the remaining module parameters as an open telescope. Warning: the returned telescope is not the final result, an actual instantiation of the parameters does not occur.

Debugging

2 declarations