compiler/typesΒΆ
- compiler/types/Class.hs
- compiler/types/CoAxiom.hs
- compiler/types/Coercion.hs
- Note [Function coercions]
- Note [Pushing a coercion into a pi-type]
- Note [Role twiddling functions]
- Note [mkCoVarCo]
- Note [Lifting coercions over types: liftCoSubst]
- Note [extendLiftingContextEx]
- Note [liftCoSubstTyVar]
- Note [Nested ForAllCos]
- Note [Nested InstCos]
- Note [simplifyArgsWorker]
- Note [Last case in simplifyArgsWorker]
- compiler/types/FamInstEnv.hs
- Note [FamInsts and CoAxioms]
- Note [Arity of data families]
- Note [Lazy axiom match]
- Note [FamInstEnv]
- Note [Varying number of patterns for data family axioms]
- Note [FamInstEnv determinism]
- Note [Apartness]
- Note [Compatibility]
- Note [Compatibility of eta-reduced axioms]
- Note [Tidy axioms when we build them]
- Note [Always number wildcard types in CoAxBranch]
- Note [Verifying injectivity annotation]
- Note [Family instance overlap conflicts]
- Note [Over-saturated matches]
- Note [Normalising types]
- Note [Normalisation and type synonyms]
- Note [Flattening]
- compiler/types/InstEnv.hs
- Note [ClsInst laziness and the rough-match fields]
- Note [Template tyvars are fresh]
- Note [Proper-match fields]
- Note [Haddock assumptions]
- Note [When exactly is an instance decl an orphan?]
- Note [InstEnv determinism]
- Note [Instance lookup and orphan instances]
- Note [Rules for instance lookup]
- Note [Overlapping instances] (NB: these notes are quite old)
- Note [DFunInstType: instantiating types]
- Note [Incoherent instances]
- Note [Binding when looking up instances]
- compiler/types/Kind.hs
- compiler/types/OptCoercion.hs
- compiler/types/TyCoRep.hs
- Note [The Type-related module hierarchy]
- Note [ATyCon for classes]
- Note [Function types]
- Note [Types for coercions, predicates, and evidence]
- Note [Constraints in kinds]
- Note [Arguments to type constructors]
- Note [Non-trivial definitional equality]
- Note [Respecting definitional equality]
- Note [Unused coercion variable in ForAllTy]
- Note [TyCoBinders]
- Note [VarBndrs, TyCoVarBinders, TyConBinders, and visibility]
- Note [No Required TyCoBinder in terms]
- Note [Refl invariant]
- Note [Generalized reflexive coercion]
- Note [Coercion axioms applied to coercions]
- Note [CoAxiom index]
- Note [Forall coercions]
- Note [Predicate coercions]
- Note [Roles]
- Note [TyConAppCo roles]
- Note [NthCo and newtypes]
- Note [NthCo Cached Roles]
- Note [InstCo roles]
- Note [Phantom coercions]
- Note [Coercion holes]
- Note [CoercionHoles and coercion free variables]
- Note [ProofIrrelProv]
- Note [Free variables of types]
- Note [Closing over free variable kinds]
- Note [CoVarsOfX and the InterestingVarFun]
- Note [When does a tycon application need an explicit kind signature?]
- Note [The substitution invariant]
- Note [Substitutions apply only once]
- Note [Extending the TvSubstEnv]
- Note [Substituting types and coercions]
- Note [Sym and ForAllCo]
- Note [Substituting in a coercion hole]
- Note [When to print foralls]
- Note [Infix type variables]
- compiler/types/TyCon.hs
- Note [Type synonym families]
- Note [Data type families]
- Note [Associated families and their parent class]
- Note [TyCon Role signatures]
- Note [Unboxed tuple RuntimeRep vars]
- Note [Injective type families]
- Note [AnonTCB InivsArg]
- Note [Building TyVarBinders from TyConBinders]
- Note [The binders/kind/arity fields of a TyCon]
- Note [Closed type families]
- Note [Promoted data constructors]
- Note [Enumeration types]
- Note [Newtype coercions]
- Note [Newtype eta]
- Note [Product types]
- Note [Constructor tag allocation]
- Note [Expanding newtypes and products]
- Note [Skolem abstract data]
- compiler/types/Type.hs
- Note [coreView vs tcView]
- Note [Efficiency for mapCoercion ForAllCo case]
- Note [Specialising mappers]
- Note [Decomposing fat arrow c=>t]
- Note [Representation of function types]
- Note [Care with kind instantiation]
- Note [mkLamType: dictionary arguments]
- Note [Evidence for quantified constraints]
- Note [Dictionary-like types]
- Note [ScopedSort]
- Note [Excess polymorphism and join points]
- Note [Equality on AppTys]
- Note [nonDetCmpType nondeterminism]
- Note [typeKind vs tcTypeKind]
- Note [Kinding rules for types]
- Note [Phantom type variables in kinds]
- Note [Occurs check expansion]
- compiler/types/Unify.hs
- Note [tcMatchTy vs tcMatchTyKi]
- Note [Pruning dead case alternatives]
- Note [Fine-grained unification]
- Note [The substitution in MaybeApart]
- Note [Unifying with skolems]
- Note [Non-idempotent substitution]
- Note [Finding the substitution fixpoint]
- Note [Specification of unification]
- Note [Self-substitution when matching]
- Note [Matching coercion variables]
- Note [Kind coercions in Unify]
- Note [Matching in the presence of casts]
- Note [Polykinded tycon applications]