tail package:ghc

Tail call, perform the call in the current stack frame.
Make a ModDetails from the results of typechecking. Used when typechecking only, as opposed to full compilation.
The arguments in a GADT constructor. Unlike Haskell98-style constructors, GADT constructors cannot be declared with infix syntax. As a result, we do not use HsConDetails here, as InfixCon would be an unrepresentable state. (There is a notion of infix GADT constructors for the purposes of derived Show instances—see Note [Infix GADT constructors] in GHC.Tc.TyCl—but that is an orthogonal concern.)
The arguments in a Haskell98-style data constructor.
Haskell Constructor Pattern Details
Describes the arguments to a data constructor. This is a common representation for several constructor-related concepts, including:
  • The arguments in a Haskell98-style constructor declaration (see HsConDeclH98Details in GHC.Hs.Decls).
  • The arguments in constructor patterns in case/function definitions (see HsConPatDetails in GHC.Hs.Pat).
  • The left-hand side arguments in a pattern synonym binding (see HsPatSynDetails in GHC.Hs.Binds).
One notable exception is the arguments in a GADT constructor, which uses a separate data type entirely (see HsConDeclGADTDetails in GHC.Hs.Decls). This is because GADT constructors cannot be declared with infix syntax, unlike the concepts above (#18844).
Information associated with every identifier We need to include types with identifiers because sometimes multiple identifiers occur in the same span(Overloaded Record Fields and so on)