haskellfoundation / error-message-index

A community-driven collection of documentation for Haskell error messages and warnings
https://errors.haskell.org
101 stars 69 forks source link

Do undocumented error number pages simply not exist? #442

Open tomjaguarpaw opened 1 year ago

tomjaguarpaw commented 1 year ago

A user posted an error message containing an error code. It just so happens that it's GHC-32850 (although the specific code doesn't matter for this issue). Google returns exactly one result for "GHC-32850" which is a GHC GitLab issue containing a similar error message.

I was surprised. I expected there to be a page for the error code in question, even if it says "this error message is not yet documented". In fact, that seems like an essential workflow for inexperienced users. Googling the code and getting no useful hits means that they haven't been helped by the index at all. On the other hand, if Google returns a link to a stub page that says "This error code is undocumented: please click here to file a GitHub issue to request documentation" that's really helpful!

So,

  1. is it really the case that there are error codes that don't have pages, or have I missed something?
  2. if so, what can I do to make sure they all get pages, even if they're just stubs?
david-christiansen commented 1 year ago
  1. It is the case. This is an intentional design, though it may not be the right one! The 404 page for an error that matches the error code regex directs people towards the easiest paths to contribute it. Why would stub pages be better?
  2. If you want stubs, the way I'd do it is to have a text file that contains a list of all available error codes, one per line. The page build script would then generate stubs for each that is not yet documented. I worry that this would make it much worse to browse the site, for the benefit of adding search hits. Perhaps the table should not show the stubs?
tomjaguarpaw commented 1 year ago

The 404 page for an error that matches the error code regex directs people towards the easiest paths to contribute it. Why would stub pages be better?

Because search engines don't index 404 pages, and the way I expect most users to get to the error code pages via search engines! To go into more detail on my experience:

  1. See the code GHC-32850
  2. Think, I know, I'll Google it!
  3. Get only one result, not relevant
  4. Think, I know, I'll go directly to errors.haskell.org and type it in
  5. Get no results
  6. Begin to question my sanity

I think the experience would be a lot better if I could get to the stub pages via both 3 and 5.

david-christiansen commented 1 year ago

I find your arguments convincing.

Would you like to send a PR?

tomjaguarpaw commented 1 year ago

Would you like to send a PR?

I would! It's on my mental stack of things to do, but I won't be offended if someone gets to it before me.

tfausak commented 11 months ago

I just experienced exactly this confusion with the GHC-54201 error code.

Edit: This GHC issue seems related: https://gitlab.haskell.org/ghc/ghc/-/issues/23626

tomjaguarpaw commented 11 months ago

For the record, this is now so far off my mental stack of things to do that it may as well be considered not on it any more :) If someone can tackle it instead I will be grateful.

xsebek commented 10 months ago

I just experienced exactly this confusion with the GHC-54201 error code.

Edit: This GHC issue seems related: https://gitlab.haskell.org/ghc/ghc/-/issues/23626

Based on the work by @sheaf in the mentioned GHC ticket, these are all the GHC error codes:

Expand list ``` GHC-00158 OK (DerivErrNotStockDeriveable) GHC-00482 OK (PsErrLambdaInPat) GHC-00711 OK (TcRnDuplicateWarningDecls) GHC-00828 MISSING (DsRuleIgnoredDueToConstructor) GHC-00846 MISSING (TcRnImplicitLift) GHC-01239 OK (PsErrIfInFunAppExpr) GHC-01245 MISSING (TcRnUnsupportedCallConv) GHC-01259 MISSING (TcRnConstraintInKind) GHC-01570 MISSING (TcRnExpectedValueId) GHC-01629 OK (TcRnTooManyTyArgsInConPattern) GHC-01687 MISSING (TcRnUnsafeDueToPlugin) GHC-02256 MISSING (TcRnAmbiguousRecordUpdate) GHC-02550 MISSING (TcRnBadQuantPredHead) GHC-03271 MISSING (DriverHomePackagesNotClosed) GHC-03272 OK (PsWarnBidirectionalFormatChars) GHC-03355 MISSING (TcRnIllegalForeignDeclBackend) GHC-03790 MISSING (PsErrParseErrorInCmd) GHC-04049 MISSING (HasStrictnessAnnotation) GHC-04214 MISSING (DsIdentitiesFound) GHC-04584 OK (PsErrArrowExprInPat) GHC-04807 MISSING (PsErrProcInFunAppExpr) GHC-04924 OK (PsErrUnknownOptionsPragma) GHC-04956 OK (DerivErrNullaryClasses) GHC-05175 MISSING (TcRnFamInstNotInjective) GHC-05380 OK (PsErrMultipleConForNewtype) GHC-05617 MISSING (CouldNotDeduce) GHC-05641 OK (PsWarnHaddockIgnoreMulti) GHC-05661 OK (PsErrImportQualifiedTwice) GHC-05989 OK (TcRnTooManyBinders) GHC-06074 MISSING (PsErrLambdaInFunAppExpr) GHC-06200 MISSING (BlockedEquality) GHC-06201 MISSING (TcRnUnsatisfiedMinimalDef) GHC-06202 MISSING (TcRnMisplacedInstSig) GHC-06204 MISSING (NotAFamilyTyCon) GHC-06205 MISSING (AssocInstanceNotInAClass) GHC-06206 MISSING (TyFamsDisabledInstance) GHC-06207 MISSING (NotAnOpenFamilyTyCon) GHC-06446 OK (PsErrDoNotationInPat) GHC-06568 MISSING (SplicePolymorphicLocalVar) GHC-07214 MISSING (DerivErrSafeHaskellGenericInst) GHC-07525 MISSING (HasExistentialTyVar) GHC-07626 OK (PsErrInPat) GHC-07641 MISSING (AtLeastOneArgExpected) GHC-07924 MISSING (PsWarnImportPreQualified) GHC-08195 MISSING (PsErrInvalidRecordCon) GHC-08382 MISSING (PsErrAtInPatPos) GHC-08451 MISSING (PsErrDeclSpliceNotAtTopLevel) GHC-08522 MISSING (TcRnTagToEnumUnspecifiedResTy) GHC-08585 MISSING (AssocInstanceMissing) GHC-08674 MISSING (DriverPackageNotTrusted) GHC-08838 MISSING (DsWrongDoBind) GHC-09009 OK (PsErrIllegalRoleName) GHC-09550 MISSING (PsErrUnsupportedBoxedSumExpr) GHC-09646 OK (PsErrTupleSectionInPat) GHC-09848 MISSING (PsErrCmmParser) GHC-10032 MISSING (TcRnPackageImportsDisabled) GHC-10107 MISSING (UnpackWithoutStrictness) GHC-10173 MISSING (NoTopLevelBinding) GHC-10190 OK (DsEmptyEnumeration) GHC-10237 MISSING (BadImportNotExportedSubordinates) GHC-10283 MISSING (RepresentationalEq) GHC-10333 OK (DerivErrGNDUsedOnData) GHC-10372 MISSING (LookupInstErrNotExact) GHC-10373 MISSING (LookupInstErrFlexiVar) GHC-10374 MISSING (LookupInstErrNotFound) GHC-10498 MISSING (TcRnBindingNameConflict) GHC-10964 MISSING (UnliftedFFITypesNeeded) GHC-10969 MISSING (TcRnTyThingUsedWrong) GHC-11861 OK (PsErrEmptyDoubleQuotes) GHC-11890 MISSING (BootMismatchedIdTypes) GHC-11913 OK (TcRnIllegalDerivingItem) GHC-12003 OK (TcRnTypeEqualityOutOfScope) GHC-12112 MISSING (BadImportAvailVar) GHC-12178 MISSING (PsErrLambdaCmdInFunAppCmd) GHC-12219 MISSING (IllegalStaticFormInSplice) GHC-12424 MISSING (BadReexportedBootThing) GHC-12875 MISSING (TcRnUnexpectedKindVar) GHC-12985 MISSING (FamilyArityMismatch) GHC-13218 OK (TcRnLinearFuncInKind) GHC-13248 MISSING (PsErrEmptyWhereInPatSynDecl) GHC-13511 MISSING (TcRnWarningMinimalDefIncomplete) GHC-14392 MISSING (NoConstructorHasAllFields) GHC-14752 MISSING (ImportLookupIllegal) GHC-15013 MISSING (TcRnIllegalTypeData) GHC-15172 MISSING (TcRnLinearPatSyn) GHC-15328 MISSING (TcRnDeprecatedModule) GHC-15708 MISSING (FunDepsDisabled) GHC-15843 MISSING (BootMismatchedTyCons) GHC-15932 MISSING (TcRnRedundantRecordWildcard) GHC-16029 MISSING (TcRnNoExplicitImportList) GHC-16220 MISSING (TcRnUninferrableTyVar) GHC-16382 MISSING (TcRnImplicitRhsQuantification) GHC-16409 MISSING (TcRnMultipleConForNewtype) GHC-16437 MISSING (DerivErrBadConstructor) GHC-16444 MISSING (TcRnPatSynNotBidirectional) GHC-16588 MISSING (DerivErrMustNotHaveClassContext) GHC-16675 MISSING (TcRnOverloadedSig) GHC-16849 MISSING (PsErrMissingBlock) GHC-16863 MISSING (PsErrUnsupportedBoxedSumPat) GHC-17268 MISSING (TcRnCharLiteralOutOfRange) GHC-17335 MISSING (DsIncompleteRecordSelector) GHC-17370 MISSING (TcRnDifferentNamesForTyVar) GHC-17440 MISSING (HasConstructorContext) GHC-17599 MISSING (AddTopDeclsUnexpectedDeclarationSplice) GHC-17779 MISSING (TcRnRoleAnnotationsDisabled) GHC-17879 MISSING (DsLazyPatCantBindVarsOfUnliftedType) GHC-17916 MISSING (TypeApplicationInPattern) GHC-17999 MISSING (TcRnGhciUnliftedBind) GHC-18042 MISSING (TcRnWarnDefaulting) GHC-18157 MISSING (TcRnStageRestriction) GHC-18208 MISSING (PsErrVarForTyCon) GHC-18273 MISSING (TcRnIncoherentRoles) GHC-18365 MISSING (TcRnPatSynArityMismatch) GHC-18403 MISSING (TcRnStupidThetaInGadt) GHC-18478 MISSING (TcRnTypeDoesNotHaveFixedRuntimeRep) GHC-18816 MISSING (RecGadtNoCons) GHC-18872 MISSING (BasicMismatch) GHC-18910 MISSING (PsErrSemiColonsInCondCmd) GHC-18932 MISSING (TcRnUnexpectedAnnotation) GHC-19244 OK (DriverMarkedTrustworthyButInferredSafe) GHC-19442 MISSING (EmptyStmtsGroupInArrowNotation) GHC-19551 MISSING (DsAggregatedViewExpressions) GHC-19590 MISSING (TcRnUnboxedTupleOrSumTypeFuncArg) GHC-19971 MISSING (DriverBackpackModuleNotFound) GHC-20036 MISSING (DsCannotMixPolyAndUnliftedBindings) GHC-20042 MISSING (TcRnDerivingDefaults) GHC-20125 OK (TcRnMissingFields) GHC-20185 MISSING (DsRecBindsNotAllowedForUnliftedTys) GHC-20540 MISSING (TcRnImplicitImportOfPrelude) GHC-20825 OK (TcRnEmptyRecordUpdate) GHC-20967 MISSING (TcRnInvalidVisibleKindArgument) GHC-21030 MISSING (DsUnbangedStrictPatterns) GHC-21231 OK (PsErrLexer) GHC-21572 MISSING (IllegalInstanceFailsCoverageCondition) GHC-21887 MISSING (PsWarnStarBinder) GHC-21926 MISSING (PsErrInvalidPackageName) GHC-22211 MISSING (MissingPackageFiles) GHC-22221 MISSING (TyVarRoleMismatch) GHC-22250 MISSING (UnsatisfiableError) GHC-22385 MISSING (NotARecordField) GHC-22406 MISSING (TcRnIllegalViewPattern) GHC-22705 MISSING (NonCanonicalMonad) GHC-22979 MISSING (TcRnPatersonCondFailure) GHC-23244 MISSING (DerivErrOnlyAnyClassDeriveable) GHC-23482 MISSING (TypeApplication) GHC-23517 MISSING (DoesNotHaveSingleField) GHC-23800 MISSING (TcRnIllegalStaticExpression) GHC-23882 MISSING (IllegalDeclaration) GHC-23894 MISSING (TcRnGADTsDisabled) GHC-24104 MISSING (CannotMixGADTConsWith98Cons) GHC-24180 OK (PsErrOpFewArgs) GHC-24342 MISSING (PsErrParseOptionsPragma) GHC-24737 MISSING (PsErrInvalidWhereBindInPatSynDecl) GHC-24922 MISSING (CannotReifyOutOfScopeThing) GHC-25037 MISSING (PsErrCaseInFunAppExpr) GHC-25078 OK (PsErrPrecedenceOutOfRange) GHC-25079 MISSING (ConstrainedClassMethodsDisabled) GHC-25277 MISSING (BadImplicitSplice) GHC-25709 MISSING (TcRnExistentialQuantificationDisabled) GHC-25742 MISSING (PsErrNotADataCon) GHC-25897 OK (DifferentTyVars) GHC-25955 MISSING (PsErrExplicitForall) GHC-26070 MISSING (ForeignLabelNotAPtr) GHC-26133 MISSING (TcRnForeignImportPrimSafeAnn) GHC-26204 MISSING (PsErrMalformedEntityString) GHC-26557 MISSING (DerivErrCannotEtaReduceEnough) GHC-26759 MISSING (IllegalTHSplice) GHC-26832 MISSING (PsErrOverloadedRecordDotInvalid) GHC-26971 MISSING (TcRnSafeImportsDisabled) GHC-27207 OK (PsErrLazyPatWithoutSpace) GHC-27346 MISSING (TcRnArityMismatch) GHC-27555 MISSING (ForeignDynNotPtr) GHC-27958 MISSING (OccursCheck) GHC-28007 OK (PsWarnMisplacedPragma) GHC-28021 MISSING (PsErrRecordSyntaxInPatSynDecl) GHC-28129 MISSING (TcRnInaccessibleCoAxBranch) GHC-28323 MISSING (DerivErrLastArgMustBeApp) GHC-28329 MISSING (TcRnQualifiedBinder) GHC-28349 MISSING (MultiParamDisabled) GHC-28374 MISSING (ConstrainedDataConPE) GHC-28572 MISSING (PatSynUnboundVar) GHC-28587 MISSING (TcRnDefaultMethodForPragmaLacksBinding) GHC-28623 MISSING (DriverFileModuleNameMismatch) GHC-28709 MISSING (MalformedType) GHC-28914 MISSING (TcRnBadlyStaged) GHC-28985 MISSING (PsErrMultiWayIf) GHC-29092 MISSING (TcRnIllformedTypeArgument) GHC-29178 MISSING (TcRnRoleMismatch) GHC-29210 MISSING (TcRnSuperclassCycle) GHC-29235 MISSING (DriverDuplicatedModuleDeclaration) GHC-29747 MISSING (DriverMissingSafeHaskellMode) GHC-29916 MISSING (TcRnDuplicateDecls) GHC-30281 MISSING (TcRnIllegalMultipleDerivClauses) GHC-30337 MISSING (FamInstLHSUnusedBoundTyVars) GHC-30367 MISSING (DerivErrGenerics) GHC-30384 MISSING (CannotReifyInstance) GHC-30606 OK (TcRnRedundantConstraints) GHC-30670 MISSING (PsErrInvalidInfixDataCon) GHC-30750 MISSING (DerivErrMustBeEnumType) GHC-30836 MISSING (IllegalHasFieldInstanceTyConHasField) GHC-30903 MISSING (DerivErrBootFileFound) GHC-31004 MISSING (TcRnCommonFieldResultTypeMismatch) GHC-31136 MISSING (NotADataType) GHC-31147 MISSING (TcRnForAllEscapeError) GHC-31574 OK (PsErrLinearFunction) GHC-31623 MISSING (PsErrUnicodeCharLooksLike) GHC-31744 MISSING (TcRnDuplicateSigDecl) GHC-31891 MISSING (TcRnIncorrectNameSpace) GHC-32478 MISSING (TcRnEmptyDataDeclsDisabled) GHC-32850 MISSING (DriverMissingHomeModules) GHC-33238 MISSING (InvalidTyConParent) GHC-33856 MISSING (PsErrSuffixAT) GHC-33973 MISSING (TcRnPatSynExistentialInResult) GHC-34447 MISSING (TcRnConflictingFamInstDecls) GHC-34611 MISSING (DerivErrHasAssociatedDatatypes) GHC-34949 MISSING (EmptyStmtListInDoBlock) GHC-35235 MISSING (NotAModule) GHC-35373 MISSING (BadImportAvailDataCon) GHC-35499 MISSING (TcRnIllegalTypeExpr) GHC-35827 MISSING (TcRnNonOverloadedSpecialisePragma) GHC-36495 MISSING (TcRnTagToEnumMissingValArg) GHC-36705 MISSING (UnsafeOverlap) GHC-36952 MISSING (PsErrIllegalWhereInDataDecl) GHC-37056 MISSING (InvalidTypeInstanceHeader) GHC-37132 MISSING (TcRnIllegalWildcardsInRecord) GHC-37141 MISSING (DriverCannotLoadInterfaceFile) GHC-37475 MISSING (PsErrIllegalGadtRecordMultiplicity) GHC-37479 MISSING (TcRnTermNameInType) GHC-37542 MISSING (DerivErrMustHaveExactlyOneConstructor) GHC-38140 MISSING (GadtNoCons) GHC-38178 MISSING (DerivErrNotDeriveable) GHC-38189 MISSING (DriverUnknownHiddenModules) GHC-38291 MISSING (IsNonLinear) GHC-38351 MISSING (AssocNotInThisClass) GHC-38417 MISSING (TcRnMissingSignature) GHC-38520 MISSING (DsRedundantBangPatterns) GHC-38524 MISSING (DsUselessSpecialiseForNoInlineFunction) GHC-38856 MISSING (UnusedImportSome) GHC-38996 MISSING (DerivErrNoEtaReduce) GHC-39191 MISSING (TyFamsDisabledFamily) GHC-39567 MISSING (PsWarnStarIsType) GHC-39584 MISSING (ReportCustomQuasiError) GHC-39639 MISSING (DefaultDataInstDecl) GHC-39716 MISSING (TcRnIllegalBuiltinSyntax) GHC-39999 OK (CannotResolveInstance) GHC-40091 MISSING (BackpackUnpackAbstractType) GHC-40280 MISSING (PsErrIllegalQualifiedDo) GHC-40404 MISSING (TcRnSolverDepthError) GHC-40548 MISSING (DsRuleBindersNotBound) GHC-40564 MISSING (TcRnInaccessibleCode) GHC-40700 MISSING (TcRnUnexpectedDefaultSig) GHC-40746 MISSING (KindSigsOnlyAllowedOnGADTs) GHC-40798 OK (PsWarnOperatorWhitespace) GHC-40845 MISSING (PsErrUnpackDataCon) GHC-40910 MISSING (TcRnUnusedName) GHC-41242 MISSING (EmptyStmtsGroupInParallelComp) GHC-41507 MISSING (TcRnIllegalPatternSynonymDecl) GHC-41522 MISSING (AssocDefaultNonTyVarArg) GHC-41843 MISSING (IOResultExpected) GHC-42026 MISSING (TcRnUnexpectedStatementInContext) GHC-42044 OK (PsWarnUnrecognisedPragma) GHC-42258 MISSING (DriverUnusedPackages) GHC-42569 MISSING (PsErrMultipleNamesInStandaloneKindSignature) GHC-42974 MISSING (ImplicitParamsWithOtherBinds) GHC-43080 MISSING (PsErrPrimStringInvalidChar) GHC-43085 MISSING (OverlappingInstances) GHC-43281 MISSING (TcRnSelfImport) GHC-43371 MISSING (TcRnDuplicateKindSig) GHC-43406 MISSING (IllegalHasFieldInstanceTyConHasFields) GHC-43510 MISSING (NotSimpleUnliftedType) GHC-43991 MISSING (TcRnTyFamDepsDisabled) GHC-44012 MISSING (TcRnTyFamResultDisabled) GHC-44188 MISSING (TcRnIdNotExportedFromModuleSig) GHC-44287 MISSING (TcRnIllegalFieldPunning) GHC-44360 OK (DriverCannotImportUnsafeModule) GHC-44432 OK (MissingBinding) GHC-44524 MISSING (PsErrExpectedHyphen) GHC-44990 MISSING (TcRnGhciMonadLookupFail) GHC-45102 MISSING (MultiplePackages) GHC-45106 MISSING (PsErrInvalidInfixHole) GHC-45108 MISSING (MismatchedSpliceType) GHC-45219 MISSING (TcRnDataConParentTypeMismatch) GHC-45474 MISSING (TcRnOversaturatedVisibleKindArg) GHC-45510 MISSING (TermVariablePE) GHC-45539 MISSING (DerivErrMustHaveSomeParameters) GHC-45625 MISSING (TcRnInvalidDefaultedTyVar) GHC-45696 OK (PsErrIfThenElseInPat) GHC-45906 MISSING (TcRnUnexpectedStandaloneKindSig) GHC-46131 MISSING (TcRnCannotBindScopedTyVarInPatSig) GHC-46208 MISSING (TcRnFunDepConflict) GHC-46284 MISSING (TcRnBadMethodErr) GHC-46537 OK (PsErrUnsupportedExt) GHC-46574 MISSING (PsErrInvalidDataCon) GHC-46878 MISSING (TcRnSectionPrecedenceError) GHC-46956 OK (SkolemEscape) GHC-47007 MISSING (PsErrIllegalExplicitNamespace) GHC-47082 MISSING (PsWarnOperatorWhitespaceExtConflict) GHC-47217 MISSING (TcRnIllegalWildcardsInConstructor) GHC-47373 MISSING (IllegalLastStatement) GHC-47403 MISSING (TcRnUserTypeError) GHC-47557 MISSING (TypeVariablePE) GHC-47568 MISSING (PsErrMalformedTyOrClDecl) GHC-47808 MISSING (ExceptionOccurred) GHC-47854 OK (TcRnDuplicateExport) GHC-48010 MISSING (TcRnEmptyCase) GHC-48099 OK (DsTopLevelBindsNotAllowed) GHC-48178 MISSING (AssocDefaultDuplicateTyVars) GHC-48254 MISSING (TcRnUnknownTyVarsOnRhsOfInjCond) GHC-48361 OK (TcRnCannotBindTyVarsInPatBind) GHC-48406 MISSING (InstHeadNonTyVarArgs) GHC-48795 MISSING (ImportLookupQualified) GHC-48959 MISSING (DerivErrDunnoHowToDeriveForType) GHC-49196 MISSING (DriverFileNotFound) GHC-49356 MISSING (TcRnTagToEnumResTyNotAnEnum) GHC-49378 MISSING (TcRnKindSignaturesDisabled) GHC-49530 MISSING (FailedToLookupThInstName) GHC-49692 MISSING (TcRnForeignImportPrimExtNotSet) GHC-49957 OK (TcRnUntickedPromotedThing) GHC-50058 MISSING (TcRnIdNotExportedFromLocalSig) GHC-50396 MISSING (PsErrInvalidRuleActivationMarker) GHC-50419 MISSING (TcRnMultipleFixityDecls) GHC-50649 MISSING (TcRnIllegalTypeOperatorDecl) GHC-50730 MISSING (TcRnIllegalImplicitParameterBindings) GHC-50928 MISSING (NonCanonicalMonoid) GHC-51179 OK (PsErrLambdaCase) GHC-51294 MISSING (NoUnitIdMatching) GHC-51580 MISSING (TcRnVDQInTermType) GHC-51603 MISSING (InvalidImplicitParamBinding) GHC-51758 MISSING (InstHeadAbstractClass) GHC-51876 MISSING (TcRnDupeModuleExport) GHC-52078 MISSING (FunBindLacksEquations) GHC-52083 MISSING (ZonkerCannotDefaultConcrete) GHC-52095 MISSING (PsErrDoInFunAppExpr) GHC-52347 MISSING (FamilyCategoryMismatch) GHC-52886 MISSING (InvalidTopDecl) GHC-53573 MISSING (TcRnInvalidWarningCategory) GHC-53633 OK (DsOverlappingPatterns) GHC-53634 MISSING (FamInstRHSOutOfScopeTyVars) GHC-53692 MISSING (DriverDeprecatedFlag) GHC-53693 MISSING (HiModuleNameMismatchWarn) GHC-53786 OK (PsErrCaseInPat) GHC-53822 MISSING (TcRnInvalidRecordField) GHC-53946 MISSING (InstHeadNonClass) GHC-54089 MISSING (PsErrQualifiedDoInCmd) GHC-54180 MISSING (TcRnUnusedQuantifiedTypeVar) GHC-54201 MISSING (TcRnCapturedTermName) GHC-54298 MISSING (TcRnRoleCountMismatch) GHC-54478 MISSING (TcRnRedundantSourceImport) GHC-54540 OK (DerivErrDataConsNotAllInScope) GHC-54709 MISSING (DynamicHashMismatchError) GHC-54721 MISSING (UnknownSubordinate) GHC-54832 MISSING (TcRnIllegalInferredTyVars) GHC-55017 MISSING (IllegalOccName) GHC-55233 MISSING (TcRnInvalidReturnKind) GHC-55287 MISSING (FixedRuntimeRepError) GHC-55524 MISSING (TcRnMonomorphicBindings) GHC-55631 MISSING (TcRnNoDerivStratSpecified) GHC-55666 OK (TcRnBangOnUnliftedType) GHC-55814 MISSING (TcRnLastStmtNotExpr) GHC-55868 MISSING (TcRnArrowIfThenElsePredDependsOnResultTy) GHC-55876 MISSING (TcRnRecSelectorEscapedTyVar) GHC-55912 MISSING (AssocNoClassTyVar) GHC-56147 OK (DriverUserDefinedRuleIgnored) GHC-56428 MISSING (TcRnAmbiguousFieldInUpdate) GHC-56449 MISSING (BadImportAvailTyCon) GHC-56753 MISSING (RecDataConPE) GHC-57342 MISSING (PsErrInferredTypeVarNotAllowed) GHC-57365 MISSING (TcRnNoFieldPunsRecordDot) GHC-57396 OK (LinearTypesNotAllowed) GHC-57638 MISSING (SafeHaskellMustBeInIO) GHC-57695 MISSING (QuotedNameWrongStage) GHC-57916 MISSING (TcRnInvalidInvisTyVarBndr) GHC-57989 MISSING (TcRnFunPtrImportWithoutAmpersand) GHC-58008 OK (TcRnGADTMonoLocalBinds) GHC-58181 MISSING (DsOrphanRule) GHC-58195 MISSING (TcRnIllegalHsBootOrSigDecl) GHC-58291 MISSING (DerivErrEnumOrProduct) GHC-58427 MISSING (HomeModError) GHC-58481 OK (PsErrParse) GHC-58520 MISSING (TcRnTypeEqualityRequiresOperators) GHC-58589 MISSING (TcRnIllegalInvisTyVarBndr) GHC-58656 OK (DriverInferredSafeModule) GHC-58805 MISSING (TcRnBindingOfExistingName) GHC-59119 MISSING (TcRnNonStdGuards) GHC-59128 MISSING (AssocMultipleDefaults) GHC-59155 MISSING (TcRnIllegalTupleSection) GHC-59185 MISSING (NestedTHBrackets) GHC-59692 MISSING (TcRnDupInstanceDecls) GHC-59738 MISSING (TcRnDisconnectedTyVar) GHC-59794 MISSING (TcRnBadGenericMethod) GHC-59840 OK (DsMultiplicityCoercionsNotSupported) GHC-60012 MISSING (TcRnAbstractClosedTyFamDecl) GHC-60220 MISSING (InvalidCCallImpent) GHC-60661 MISSING (TcRnPartialTypeSignatures) GHC-61072 MISSING (TcRnGADTDataContext) GHC-61367 MISSING (TcRnUnusedPatternBinds) GHC-61505 MISSING (DsMaxPmCheckModelsReached) GHC-61689 MISSING (BadImportNotExported) GHC-61948 MISSING (ModuleSuggestion) GHC-62016 OK (DerivErrNotWellKinded) GHC-62161 OK (DsNonExhaustivePatterns) GHC-62330 OK (PsErrNumUnderscores) GHC-62412 MISSING (TcRnSimplifiableConstraint) GHC-62547 MISSING (TcRnIllegalTypeOperator) GHC-62558 MISSING (IllegalTHQuotes) GHC-63055 MISSING (TcRnFieldUpdateInvalidType) GHC-63174 MISSING (DerivErrDerivingViaWrongKind) GHC-63294 MISSING (TcRnIllegalRuleLhs) GHC-63388 MISSING (DerivErrNotAClass) GHC-63394 MISSING (WarningTxt) GHC-63397 MISSING (TcRnShadowedName) GHC-63610 MISSING (MissingBootDefinition) GHC-63930 MISSING (MultiWayIfWithoutAlts) GHC-63966 MISSING (IllegalSumAlt) GHC-64088 OK (TcRnForallIdentifier) GHC-64097 MISSING (NotBoxedKindAny) GHC-64414 MISSING (TcRnPolymorphicBinderMissingSig) GHC-64525 MISSING (TcRnArrowProcGADTPattern) GHC-64560 MISSING (DerivErrNoConstructors) GHC-64578 MISSING (FamDataConPE) GHC-64649 MISSING (TcRnNullExportedModule) GHC-64725 OK (UserTypeError) GHC-64852 MISSING (BadSourceImport) GHC-64861 MISSING (TcRnIllegalKind) GHC-65490 MISSING (TcRnMissingRoleAnnotation) GHC-65507 MISSING (TcRnIllegalWildcardInType) GHC-65536 MISSING (PsErrNoSingleWhereBindInPatSynDecl) GHC-65669 MISSING (TcRnUnusedVariableInRuleDecl) GHC-65719 MISSING (PsErrIllegalTraditionalRecordSyntax) GHC-65904 MISSING (DsNotYetHandledByTH) GHC-65923 MISSING (NoRolesAssociatedWithThing) GHC-65945 MISSING (TcRnNoRebindableSyntaxRecordDot) GHC-66004 MISSING (DriverUnexpectedSignature) GHC-66025 MISSING (TcRnPatSynBundledWithWrongType) GHC-66043 MISSING (PsErrArrowCmdInExpr) GHC-66111 MISSING (UnusedImportNone) GHC-66228 OK (PsErrViewPatInExpr) GHC-66418 MISSING (PsErrParseErrorOnInput) GHC-66649 MISSING (TcRnIgnoringAnnotations) GHC-66775 MISSING (TcRnPatSynBundledWithNonDataCon) GHC-67120 MISSING (TcRnMissingMain) GHC-67297 MISSING (TcRnTypeDataForbids) GHC-67630 MISSING (PsErrMDoInFunAppExpr) GHC-67760 MISSING (AddDocToNonLocalDefn) GHC-68286 MISSING (DriverUnknownReexportedModules) GHC-68441 MISSING (DeprecatedTxt) GHC-68444 MISSING (SumAltArityExceeded) GHC-68567 MISSING (TcRnDataKindsError) GHC-68686 OK (PsErrParseLanguagePragma) GHC-68934 MISSING (TcRnAnnotationInSafeHaskell) GHC-69012 MISSING (TcRnTupleConstraintInst) GHC-69158 OK (TcRnConflictingExports) GHC-69248 MISSING (TcRnIllegalClassBinding) GHC-69317 MISSING (PatSynNotInvertible) GHC-69441 MISSING (DsRuleLhsTooComplicated) GHC-69797 MISSING (TcRnDeprecatedInvisTyArgInConPat) GHC-69925 OK (PsErrIllegalUnboxedStringInPat) GHC-70172 MISSING (DriverMixedSafetyImport) GHC-70206 MISSING (TcRnIllegalTypePattern) GHC-70349 MISSING (PatSynPE) GHC-70526 MISSING (PsErrLetCmdInFunAppCmd) GHC-70712 OK (PsErrDotsInRecordUpdate) GHC-70743 MISSING (IllegalHasFieldInstanceFamilyTyCon) GHC-71444 MISSING (TcRnLazyBangOnUnliftedType) GHC-71451 MISSING (TcRnSkolemEscape) GHC-71492 MISSING (TcRnNestedForallsContexts) GHC-71614 OK (PsErrEmptyLambda) GHC-72317 MISSING (NewtypeDataConNotInScope) GHC-72489 MISSING (TcRnRecursivePatternSynonym) GHC-72516 MISSING (PsErrParseRightOpSectionInPat) GHC-72520 MISSING (TcRnIgnoreSpecialisePragmaOnDefMethod) GHC-72744 MISSING (PsErrInvalidCApiImport) GHC-72771 MISSING (TcRnDefaultSigMismatch) GHC-73138 MISSING (IllegalFamilyApplicationInInstance) GHC-73413 MISSING (PsErrUnexpectedQualifiedConstructor) GHC-73993 MISSING (TcRnNonUnaryTypeclassConstraint) GHC-74097 MISSING (TcRnUnexpectedPatSigType) GHC-74335 MISSING (DriverInconsistentDynFlags) GHC-75165 MISSING (DriverCannotImportFromUntrustedPackage) GHC-75254 MISSING (PsErrSemiColonsInCondExpr) GHC-75356 OK (TcRnDodgyExports) GHC-75429 MISSING (CircularImport) GHC-75721 MISSING (CannotRepresentType) GHC-75725 MISSING (PsErrCmmLexer) GHC-75844 MISSING (TcRnIllegalConstraintSynonymOfKind) GHC-75863 MISSING (TcRnIllegalImplicitParam) GHC-76037 OK (NotInScope) GHC-76176 MISSING (PsErrSpaceInSCC) GHC-76251 MISSING (TcRnForeignFunctionImportAsValue) GHC-76329 MISSING (NotInScopeTc) GHC-76595 MISSING (PsErrIllegalUnboxedFloatingLitInPat) GHC-77037 OK (TcRnMissingImportList) GHC-77192 MISSING (TcRnIllegalRoleAnnotation) GHC-77343 MISSING (TcRnIllegalQuasiQuotes) GHC-77539 OK (TcRnIllegalTupleConstraint) GHC-77799 MISSING (DriverStaticPointersNotSupported) GHC-77808 MISSING (PsErrDoCmdInFunAppCmd) GHC-77878 MISSING (PsErrUnexpectedTypeInDecl) GHC-77923 MISSING (NonExactName) GHC-78125 MISSING (AmbiguityPreventsSolvingCt) GHC-78448 MISSING (TcRnIllegalDataCon) GHC-78486 MISSING (InvalidTyFamInstLHS) GHC-78822 MISSING (AssocDefaultNotAssoc) GHC-78892 OK (PsErrLetInPat) GHC-79767 MISSING (PsErrIllegalBangPattern) GHC-79857 MISSING (MissingBootInstance) GHC-79890 MISSING (CannotReifyThingNotInTypeEnv) GHC-79924 MISSING (TcRnCannotDefaultKindVar) GHC-80003 MISSING (TcRnNonTypeVarArgInConstraint) GHC-80236 MISSING (PsErrIllegalPromotionQuoteDataCon) GHC-80557 MISSING (TcRnIllegalImplicitTyVarInTypeArgument) GHC-80768 OK (TcRnClassKindNotConstraint) GHC-81232 MISSING (TcRnListComprehensionDuplicateBinding) GHC-81284 MISSING (PsErrIllegalImportBundleForm) GHC-81325 MISSING (ExpectingMoreArguments) GHC-81573 MISSING (SameName) GHC-81601 MISSING (LazyFieldsDisabled) GHC-81995 MISSING (DsUnusedDoBind) GHC-82023 MISSING (DerivErrNewtypeNonDeriveableClass) GHC-82077 MISSING (TcRnIllegalPatSynDecl) GHC-82135 MISSING (PsErrOverloadedRecordUpdateNotEnabled) GHC-82272 MISSING (DriverModuleNotFound) GHC-82311 MISSING (EmptyStmtsGroupInDoNotation) GHC-82347 MISSING (TcRnCompatUnqualifiedImport) GHC-82614 MISSING (DerivErrNoFamilyInstance) GHC-82658 MISSING (DriverInferredSafeImport) GHC-82712 MISSING (TcRnPartialFieldSelector) GHC-83249 MISSING (Can'tFindNameInInterface) GHC-83475 MISSING (TcRnUnusedRecordWildcard) GHC-83552 MISSING (DriverPackageTrustIgnored) GHC-83653 MISSING (PsErrUnexpectedKindAppInDataCon) GHC-83865 OK (TypeEqMismatch) GHC-84077 OK (PsErrTypeAppWithoutSpace) GHC-84170 MISSING (TcRnModMissingRealSrcSpan) GHC-85314 MISSING (PsErrUnallowedPragma) GHC-85316 MISSING (PsErrMalformedDecl) GHC-85337 MISSING (TcRnSpecialiseNotVisible) GHC-85346 MISSING (TcRnDuplicateMinimalSig) GHC-85401 MISSING (TcRnMissingExportList) GHC-85413 MISSING (TyConPE) GHC-85524 MISSING (TcRnDuplicateFieldName) GHC-86357 MISSING (TcRnBadlyStagedType) GHC-86463 MISSING (AddInvalidCorePlugin) GHC-86639 MISSING (DerivErrLangExtRequired) GHC-86894 MISSING (TcRnHasFieldResolvedIncomplete) GHC-86934 MISSING (ClassPE) GHC-87005 MISSING (TcRnLazyGADTPattern) GHC-87110 MISSING (GenericMissing) GHC-87139 MISSING (TcRnIllegalDerivStrategy) GHC-87279 MISSING (TcRnBadTyConTelescope) GHC-87429 OK (PsErrIllegalDataTypeContext) GHC-87491 OK (PsErrImportPostQualified) GHC-87502 MISSING (DsAnotherRuleMightFireFirst) GHC-87543 MISSING (TcRnAmbiguousName) GHC-87866 MISSING (TcRnMisplacedSigDecl) GHC-87897 MISSING (SpliceThrewException) GHC-88221 MISSING (TyFamNameMismatch) GHC-88293 MISSING (TcRnUnexpectedPragmas) GHC-88333 MISSING (TcRnIncorrectTyVarOnLhsOfInjCond) GHC-88431 MISSING (TcRnStaticFormNotClosed) GHC-88464 OK (ReportHoleError) GHC-88719 MISSING (MissingPackageWayFiles) GHC-88747 MISSING (TcRnPrecedenceParsingError) GHC-88754 MISSING (TcRnIllformedTypePattern) GHC-88793 MISSING (TcRnPartialTypeSigTyVarMismatch) GHC-88907 MISSING (DriverUnnecessarySourceImports) GHC-88933 OK (TcRnBadDefaultType) GHC-88986 MISSING (TcRnPatSynEscapedCoercion) GHC-88993 MISSING (TcRnExportedParentChildMismatch) GHC-88994 MISSING (IllegalHasFieldInstanceNotATyCon) GHC-89223 MISSING (KindMismatch) GHC-89246 MISSING (TcRnIllegalRecordSyntax) GHC-89347 MISSING (TcRnCTupleTooLarge) GHC-89401 MISSING (NotABoxedMarshalableTyCon) GHC-89498 MISSING (IsGADT) GHC-89515 MISSING (PsErrIllegalPatSynExport) GHC-90177 OK (TcRnOrphanInstance) GHC-90355 MISSING (PsErrLetInFunAppExpr) GHC-90584 OK (TcRnUselessTypeable) GHC-90973 MISSING (TcRnExportedModNotImported) GHC-91028 OK (CannotUnifyWithPolytype) GHC-91382 MISSING (TcRnIllegalKindSignature) GHC-91416 MISSING (UnboundImplicitParams) GHC-91490 MISSING (OneArgExpected) GHC-91510 MISSING (TcRnForAllRankErr) GHC-91745 MISSING (CasesExprWithoutAlts) GHC-91827 MISSING (TcRnCommonFieldTypeMismatch) GHC-91901 MISSING (InstHeadMultiParam) GHC-91938 OK (TcRnMatchesHaveDiffNumArgs) GHC-91999 MISSING (MissingBootExport) GHC-92057 MISSING (ImportLookupAmbiguous) GHC-92337 MISSING (TcRnInvisBndrWithoutSig) GHC-92693 MISSING (EmptyStmtsGroupInTransformListComp) GHC-92834 MISSING (BadCoercionRole) GHC-92878 MISSING (TcRnDifferentExportWarnings) GHC-92971 MISSING (PsErrCaseCmdInFunAppCmd) GHC-92994 OK (UnexpectedNestedForall) GHC-93006 MISSING (TcRnIllegalHsigDefaultMethods) GHC-93007 MISSING (TcRnHsigFixityMismatch) GHC-93008 MISSING (HsigShapeSortMismatch) GHC-93009 MISSING (HsigShapeNotUnifiable) GHC-93011 MISSING (TcRnHsigMissingModuleExport) GHC-93315 MISSING (DsUselessSpecialiseForClassMethodSelector) GHC-93411 MISSING (TcRnIllegalNamedWildcardInTypeArgument) GHC-93557 OK (InstHeadTySynArgs) GHC-93617 MISSING (PsWarnTransitionalLayout) GHC-93632 MISSING (TcRnNegativeNumTypeLiteral) GHC-93741 MISSING (DriverUnrecognisedFlag) GHC-93961 MISSING (TcRnOrphanCompletePragma) GHC-94185 MISSING (TcRnPartialTypeSigBadQuantifier) GHC-94210 MISSING (DsInaccessibleRhs) GHC-94426 MISSING (PsErrInvalidTypeSignature) GHC-94458 OK (PsWarnHaddockInvalidPos) GHC-94558 MISSING (TcRnExportHiddenComponents) GHC-94559 MISSING (CouldntFindInFiles) GHC-94642 MISSING (TypedTHWithPolyType) GHC-94721 MISSING (TcRnIncompleteExportWarnings) GHC-94803 MISSING (TcRnTupleTooLarge) GHC-94817 OK (PsWarnTab) GHC-94863 MISSING (PsErrOverloadedRecordUpdateNoQualifiedFields) GHC-95159 MISSING (TcRnUnexpectedStandaloneDerivingDecl) GHC-95379 MISSING (DriverRedirectedNoMain) GHC-95396 MISSING (DsRuleMightInlineFirst) GHC-95424 MISSING (AssocTyVarsDontMatch) GHC-95644 OK (PsErrBangPatWithoutSpace) GHC-95774 MISSING (TcRnInvalidCIdentifier) GHC-95781 OK (TcRnInvalidTypeApplication) GHC-95822 MISSING (TcRnSimplifierTooManyIterations) GHC-95880 MISSING (TcRnSectionWithoutParentheses) GHC-95909 OK (TcRnMissingStrictFields) GHC-96189 MISSING (TcRnTagToEnumResTyTypeData) GHC-96665 MISSING (TcRnMultipleInlinePragmas) GHC-97005 MISSING (PsErrIfCmdInFunAppCmd) GHC-97044 OK (IllegalSpecialClassInstance) GHC-97170 MISSING (TcRnDuplicateRoleAnnot) GHC-97219 MISSING (TcRnDuplicateFieldExport) GHC-97441 OK (DsOverflowedLiterals) GHC-97522 MISSING (TcRnTypeSynonymCycle) GHC-97721 MISSING (IllegalSumArity) GHC-97739 OK (BadTelescope) GHC-97784 MISSING (NoExactName) GHC-98887 MISSING (DriverSafeHaskellIgnoredExtension) GHC-98980 OK (PsErrArrowCmdInPat) GHC-99339 MISSING (MultiplePossibleParents) GHC-99412 MISSING (TcRnShadowedTyVarNameInFamResult) GHC-99565 OK (TcRnMultipleDefaultDeclarations) GHC-99623 OK (DodgyImportsEmptyParent) GHC-99831 MISSING (NonVarInInfixExpr) GHC-99991 MISSING (TyVarMissingInEnv) ```

It seems 552 out of 649 (about 85%) are missing documentation.


What should the stub pages look like @david-christiansen?

In #473 I tried generating them to look like the "Not found" page, with just a little extra info to make it clear it is a known GHC error code.

I tried doing this manually by building current head GHC and running this:

_build/stage1/bin/ghc -package ghc --interactive
:m +GHC.Types.Error GHC.Driver.Errors.Types GHC.Driver.Errors.Ppr GHC.Types.Error.Codes Data.Map
mapM_ (\(c, t) -> putStrLn $ show c ++ ":" ++ t) (toList $ constructorCodes @GhcMessage)

And then I used a shell script to create the missing files:

Expand shell script ```Bash #!/bin/bash for msg in $(cat ghc-messages.txt); do i=$(echo $msg | sed -e 's/\(.*\):.*/\1/g'); m=$(echo $msg | sed -e 's/.*:\(.*\)/\1/g'); if [ -d "messages/$i" ]; then echo "$i OK ($m)"; else echo "$i MISSING ($m)"; mkdir -p messages/$i; cat > messages/$i/index.md <

If anyone has a better way with some JS/Haskell scripting so we can only have one file listing all known GHC codes, that would be great.

tomjaguarpaw commented 10 months ago

Probably best to ping @BinderDavid, as he is now in charge since David C has moved on from the HF.

BinderDavid commented 10 months ago

Thanks, I somehow missed this issue.. I will take a closer look this weekend.