HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

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.