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.Termination.RecCheck

Checking for recursion:

  • We detect truly (co)recursive definitions by computing the dependency graph and checking for cycles.

  • This is inexpensive and let us skip the termination check when there's no (co)recursion

Original contribution by Andrea Vezzosi (sanzhiyan). This implementation by Andreas.

  • 1 type
  • 2 values
  • PackageAgda-2.7.0.1
  • Exports3
  • LanguageHaskell2010
  • LicenceMIT
  • SourceRecCheck.hs
typetype MutualNames = Set QName
#

The mutual block we are checking.

The functions are numbered according to their order of appearance in this set.

valuerecursive :: Set QName -> TCM [MutualNames]
#

Given a list of formally mutually recursive functions, check for actual recursive calls in the bodies of these functions. Returns the actually recursive functions as strongly connected components.

As a side effect, update the clauseRecursive field in the clauses belonging to the given functions.