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.TypeChecking.Coverage.SplitTree

Split tree for transforming pattern clauses into case trees.

The coverage checker generates a split tree from the clauses. The clause compiler uses it to transform clauses to case trees.

The initial problem is a set of clauses. The root node designates on which argument to split and has subtrees for all the constructors. Splitting continues until there is only a single clause left at each leaf of the split tree.

  • 7 types
  • 2 values
  • PackageAgda-2.7.0.1
  • Exports9
  • LanguageHaskell2010
  • LicenceMIT
  • SourceSplitTree.hs
datadata SplitTree' a
#

Abstract case tree shape.

Constructors

Instances10DropArgs, Show, Generic, NFData, Pretty, KillRange, …
datadata LazySplit
#
Instances7Eq, Ord, Show, Generic, NFData, EmbPrj, …
typetype SplitTrees' a = [(a, SplitTree' a)]
#

Split tree branching. A finite map from constructor names to splittrees A list representation seems appropriate, since we are expecting not so many constructors per data type, and there is no need for random access.

datadata SplitTag
#

Tag for labeling branches of a split tree. Each branch is associated to either a constructor or a literal, or is a catchall branch (currently only used for splitting on a literal type).

Instances11Eq, Ord, Show, Generic, NFData, Pretty, …

Printing a split tree

3 declarations