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.Syntax.Abstract

The abstract syntax. This is what you get after desugaring and scope analysis of the concrete syntax. The type checker works on abstract syntax, producing internal syntax (Agda.Syntax.Internal).

  • 57 types
  • 3 classes
  • 21 values
  • PackageAgda-2.7.0.1
  • Exports82
  • LanguageHaskell2010
  • LicenceMIT
  • SourceAbstract.hs
datadata Expr
#

Expressions after scope checking (operators parsed, names resolved).

Constructors

Instances47Eq, Show, Generic, NFData, IsProjP, HasRange, …
typetype Type = Expr
#

Types are just expressions. Use this type synonym for hinting that an expression should be a type.

datadata Declaration
#

Constructors

Instances16Eq, Show, Generic, NFData, HasRange, Hilite, …
datadata LHS
#

The lhs of a clause in focused (projection-application) view (outside-in). Projection patters are represented as LHSProjs.

Constructors

Instances18Eq, Show, Generic, NFData, HasRange, ToConcrete, …
datadata Pragma
#

Constructors

Instances8Eq, Show, Generic, NFData, Hilite, DeclaredNames, …
datadata Clause' lhs
#

We could throw away where clauses at this point and translate them to let. It's not obvious how to remember that the let was really a where clause though, so for the time being we keep it here.

Constructors

Instances18Functor, Foldable, Traversable, DeclaredNames, BlankVars, LHSToSpine, …
datadata Binder' a
#
Instances15Functor, Foldable, Traversable, Eq, Show, Generic, …
datadata LamBinding
#

A lambda binding is either domain free or typed.

Constructors

Instances15Eq, Show, Generic, NFData, HasRange, ToConcrete, …
datadata TypedBinding
#

A typed binding. Appears in dependent function spaces, typed lambdas, and telescopes. It might be tempting to simplify this to only bind a single name at a time, and translate, say, (x y : A) to (x : A)(y : A) before type-checking. However, this would be slightly problematic:

  1. We would have to typecheck the type A several times.

  2. If A contains a meta variable or hole, it would be duplicated by such a translation.

While 1. is only slightly inefficient, 2. would be an outright bug. Duplicating A could not be done naively, we would have to make sure that the metas of the copy are aliases of the metas of the original.

Constructors

Instances16Eq, Show, Generic, NFData, HasRange, PrettyTCM, …
datadata ModuleApplication
#

Constructors

Instances11Eq, Show, Generic, NFData, ToConcrete, Hilite, …
datadata RHS
#

Constructors

Instances14Eq, Show, Generic, NFData, HasRange, ToConcrete, …
datadata ScopeCopyInfo
#
Instances7Eq, Show, Generic, NFData, Pretty, KillRange, …
datadata ProblemEq
#

A user pattern together with an internal term that it should be equal to after splitting is complete. Special cases: * User pattern is a variable but internal term isn't: this will be turned into an as pattern. * User pattern is a dot pattern: this pattern won't trigger any splitting but will be checked for equality after all splitting is complete and as patterns have been bound. * User pattern is an absurd pattern: emptiness of the type will be checked after splitting is complete. * User pattern is an annotated wildcard: type annotation will be checked after splitting is complete.

Instances11Eq, Show, Generic, NFData, Subst, PrettyTCM, …
datadata TypedBindingInfo
#

Extra information that is attached to a typed binding, that plays a role during type checking but strictly speaking is not part of the name : type" relation which a makes up a binding.

Constructors

  • TypedBindingInfo
    • tbTacticAttr :: TacticAttribute

      Does this binding have a tactic annotation?

    • tbFinite :: Bool

      Does this binding correspond to a Partial binder, rather than to a Pi binder? Must be present here to be reflected into abstract syntax later (and to be printed to the user later).

Instances9Eq, Show, Generic, NFData, Null, Hilite, …
datadata Pattern' e
#

Parameterised over the type of dot patterns.

Constructors

Instances41Functor, Foldable, Traversable, PrettyTCM, MapNamedArgPattern, BlankVars, …
datadata LHSCore' e
#

The lhs in projection-application and with-pattern view. Parameterised over the type e of dot patterns.

Constructors

Instances19Functor, Foldable, Traversable, ToConcrete, BlankVars, Binder, …
newtypenewtype BindName
#

A name in a binding position: we also compare the nameConcrete when comparing the binders for equality.

With --caching on we compare abstract syntax to determine if we can reuse previous typechecking results: during that comparison two names can have the same nameId but be semantically different, e.g. in {_ : A} -> .. vs. {r : A} -> ...

Constructors

Instances18Eq, Ord, Show, NFData, HasRange, Hilite, …
datadata LetBinding
#

Bindings that are valid in a let.

Constructors

Instances13Eq, Show, Generic, NFData, HasRange, ToConcrete, …
datadata GeneralizeTelescope
#

Constructors

Instances8Eq, Show, Generic, NFData, Hilite, KillRange, …
datadata DataDefParams
#

Constructors

Instances8Eq, Show, Generic, NFData, Hilite, KillRange, …
datadata WhereDeclarations
#

Constructors

Instances13Eq, Show, Generic, NFData, HasRange, ToConcrete, …
datadata SpineLHS
#

The lhs of a clause in spine view (inside-out). Projection patterns are contained in spLhsPats, represented as ProjP d.

Constructors

Instances12Eq, Show, Generic, NFData, HasRange, ToConcrete, …
classclass SubstExpr a where
#

Methods

Instances11SubstExpr, …
datadata DeclarationSpine
#
Instances1Show

Orphan instances

1 instance