The mutual block we are checking.
The functions are numbered according to their order of appearance in this set.
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
ModuleAgda-2.7.0.1Haskell2010
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.
The mutual block we are checking.
The functions are numbered according to their order of appearance in this set.
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.
anysDef names a returns all definitions from names
that are used in a.