Constraint package:Agda

A constraint is an edge in the graph.
Constraint: an inequation between size expressions, e.g. X < ∞ or i + 3 ≤ j.
Collect statistics about constraint solving
Returns all metavariables in a constraint. Slightly complicated by the fact that blocked terms are represented by two meta variables. To find the second one we need to look up the meta listeners for the one in the UnBlock constraint. This is used for the purpose of deciding if a metavariable is constrained or if it can be generalized over (see Agda.TypeChecking.Generalize).
The list of constraints is given redundantly as pairs of ProblemConstraint (original constraint) and HypSizeConstraint (form with size assumptions in context spelled out). The Doc is some extra reason for why solving failed.
Face constraint patterns (i = 0) must be visible arguments.
Face constraint patterns (i = 0) must be unnamed arguments.
Monad service class containing methods for adding and solving constraints