HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

ModuleAgda-2.8.0.2Haskell2010

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.8.0.2
  • 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