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

Modulegeneric-lens-core-2.3.0.0Haskell2010

Data.Generics.Internal.Void

  • 3 types

Uncluttering type signatures

Because the various instances in the library always match (the Has* classes are essentially glorified constraint synonyms), they get replaced with their constraints, resulting in large, unreadable types.

Writing an (overlapping instance) for this Void type means that the original instance might not be the one selected, thus GHC leaves the constraints in place until further information is provided, at which point the type machinery has sufficient information to reduce to sensible types.

datadata Void2 (a :: k) (b :: k1)
#