The Haskell Error Index | GHC

Welcome

This site describes error messages that can be returned by GHC, including both errors and warnings. Every error and warning has a code that GHC emits when you run into it—you can look them up below.

So far, 115 GHC errors and warnings are documented here. If you encounter a message that is not yet documented, please open an issue or submit a pull request with documentation. Pull requests with additional examples and improved explanations for existing messages are also very welcome, as are improvements to the generated site.

This site is a project of The Haskell Foundation. Please get in touch if you have feedback or if you'd like to get involved!

The Messages

Nr.MessageSummarySince
GHC-00158 Cannot derive instance for non-stock-deriveable class An instance cannot be derived because the class is not stock deriveable. 9.6.1
GHC-00482 Lambda syntax in pattern Lambda syntax appears in a pattern match. 9.6.1
GHC-00711 Duplicate warning declarations Duplicate deprecation warnings are illegal 9.6.1
GHC-01239 Unexpected if expression in function application If expression used as function argument 9.6.1
GHC-01629 Too many type arguments in constructor pattern Too many type applications to a constructor in a pattern. 9.6.1
GHC-02256 Ambiguous record update Record update with duplicate field names is ambiguous 9.6.1
GHC-03272 Bidirectional formatting warning The source file contains Unicode bidirectional formatting instructions 9.6.1
GHC-04584 Expression syntax in pattern There has been an attempt to pattern match on expression syntax. 9.6.1
GHC-04924 Unknown flag in GHC options pragma Unknown flag in {-# OPTIONS_GHC #-} pragma. 9.6.1
GHC-04956 Can't derive instances of nullary classes It is not possible to derive instances of argumentless type classes without the DeriveAnyClass extension. 9.6.1
GHC-05380 Multiple newtype constructors More than 1 constructor for a newtype 9.6.1
GHC-05641 Multiple Haddock comments Multiple Haddock comments for a single entity are not allowed 9.6.1
GHC-05661 Cannot use qualified both before and after the module A module cannot be imported using the qualified modifier both before and after the name of the module 9.6.1
GHC-05989 Too many type binders A type constructor is declared with more arguments than its kind annotation specifies. 9.6.1
GHC-06201 Missing method in type class instance A required method is missing from the instance declaration. 9.6.1
GHC-06202 Illegal type signature in instance declaration Method in class instance has type signature, but extension InstanceSigs is not enabled 9.6.1
GHC-06446 Do notation in pattern match Do notation in pattern match. 9.6.1
GHC-07626 Parse error in pattern Compiler not able to parse pattern. 9.6.1
GHC-08838 Wrong do bind Returning a monadic computation in a do block and not binding it will not run it 9.6.1
GHC-09009 Illegal role name. Type roles should be one of representational, nominal, or phantom. 9.6.1
GHC-09646 Tuple section in pattern There has been an attempt to pattern match on a tuple section. 9.6.1
GHC-10190 Empty enumeration An enumeration would be empty. 9.6.1
GHC-10333 Generalized newtype deriving doesn't work on non-newtypes Generalized newtype deriving works only for types declared with the newtype keyword. 9.6.1
GHC-11861 Empty single quotes No character literal provided within single quotes. 9.6.1
GHC-11913 Illegal deriving item Something other than a type class appears in a deriving statement. 9.6.1
GHC-12003 Type equality not in scope The type equality operator has not been imported into the current module. 9.6.1
GHC-13218 Illegal linear function in kind A linear function was used for a higher kind, which is not allowed 9.6.1
GHC-19244 Module is annotated as trustworthy, but is inferred as safe The module is annotated to be trustworthy, but it could be annotated as safe 9.6.1
GHC-20125 Missing field(s) Initialization of record with missing field(s). 9.6.1
GHC-20825 Empty record update Record update syntax requires that at least one field be specified. 9.6.1
GHC-21231 Numeric escape sequence out of range The numeric escape sequence represents a number that is too large 9.6.1
GHC-24180 Too few arguments to infix type operator A type operator was not provided with both arguments. 9.6.1
GHC-25078 Precedence out of range An invalid operator precedence was provided. 9.6.1
GHC-25897 GADT pattern match must have a known result type A pattern match on a GADT cannot succeed unless GHC knows the result type of the pattern match. 9.6.1
GHC-27207 Missing space after tilde `~` Lazy pattern in expression context. 9.6.1
GHC-28007 Misplaced LANGUAGE pragma LANGUAGE pragmas should come before the module declaration. 9.6.1
GHC-30606 Redundant constraints A binding has constraints that are redundant. 9.6.1
GHC-31574 Illegal use of linear functions The linear function type is used, but LinearTypes are not enabled 9.6.1
GHC-38520 Redundant Bang Patterns Used a bang pattern that has no effect 9.6.1
GHC-39999 No instance arising An expression requires a type class instance which is not provided by the context. 9.6.1
GHC-40798 Operator whitespace An optional warning for detecting usage of infix, suffix or prefix operators that could be parsed differently in future due to whitespace. 9.6.1
GHC-42044 Unrecognised pragma GHC didn't recognize pragma and will thus ignore it 9.6.1
GHC-44360 Cannot import unsafe modules in Safe Haskell Only safe modules can be imported in modules which are declared safe 9.6.1
GHC-44432 Type signature lacks an accompanying binding A type signature was provided, but no binding was given. 9.6.1
GHC-45696 If-Then-Else in pattern match If-Then-Else expression in pattern match. 9.6.1
GHC-46537 Unsupported extension GHC failed to recognize name of a language extension 9.6.1
GHC-46956 Kind variable would escape its scope A local kind variable was used to classify a type from a scope in which the kind variable is not available. 9.6.1
GHC-47535 Identifier is not a record selector An identifier does not refer to a record selector but is used as such. 9.6.1
GHC-47854 Duplicate Exports An identifier appears twice in an export list. 9.6.1
GHC-48099 Top-level strict or unlifted binds not allowed Top-level bindings may not be strict, and they may not have unlifted types. 9.6.1
GHC-48361 Binding type variables is not allowed in pattern bindings You can only bind value-level variables in a pattern, not type variables. 9.6.1
GHC-49957 Unticked promoted constructors A promoted data constructor was used as a type without it being indicated with a tick mark. 9.6.1
GHC-51179 Missing LambdaCase Missing LambdaCase language extension 9.6.1
GHC-53633 Redundant patterns A pattern is impossible to reach due to earlier patterns 9.6.1
GHC-53786 Case expression included in pattern A pattern contains case-of syntax. 9.6.1
GHC-54540 Cannot derive instance without constructors in scope It is not possible to derive a typeclass instance if the constructors of the type are not in scope 9.6.1
GHC-55666 Strictness annotation on unlifted type Using a strictness annotation (bang) on an unlifted type is redudant as unlifted values are strict by definition 9.6.1
GHC-56147 Rewrite rules are ignored in Safe Haskell Rewrite rules are not allowed in Safe Haskell and are therefore ignored 9.6.1
GHC-56538 Instance head is not headed by a class A type class instance declaration is declared for something that is not a type class. 9.6.1
GHC-57396 Linear types are not supported in FFI Linear types are not supported when using GHC's FFI functionality 9.6.1
GHC-58008 Pattern matching on GADTs without MonoLocalBinds is fragile Pattern matching on GADTs without MonoLocalBinds is fragile 9.6.1
GHC-58481 Parse error on input Generic parsing error. 9.6.1
GHC-58656 Module is inferred to be safe If a module is inferred as safe, then it should be annotated as safe 9.6.1
GHC-59155 Illegal tuple section A tuple section is used, but the TupleSections extension is not enabled 9.6.1
GHC-59692 Duplicate Instances Multiple instances defined for the same type class and type. 9.6.1
GHC-59738 Scoped type variables only appears non-injectively in declaration header A data declaration has a kind signature, where the implictly bound type variables cannot be matched up unambiguosly with the ones from the signature itself 9.6.4
GHC-59840 GHC does not support GADTs or type families which witness equality of multiplicities GHC does not support GADTs or type families which witness equality of multiplicities 9.6.1
GHC-61689 Bad import not exported Module does not export the imported symbol. 9.8.1
GHC-62016 Cannot derive well-kinded instance An instance cannot be derived because the kinds cannot be made to match. 9.6.1
GHC-62161 Incomplete patterns Pattern match(es) are non-exhaustive. 9.6.1
GHC-62330 Underscores not allowed in float and integer literals Float and integer literals cannot contain underscores. 9.6.1
GHC-63394 Messages from WARNING and DEPRECATED pragmas Warning or deprecation message attached to a function, class, type, or module in a library 9.6.1
GHC-64088 Use of "forall" as an identifier Use of "forall" as an identifier is discouraged 9.6.1
GHC-64725 User-defined type error An invalid constraint or type family reduces to a custom type error. 9.6.1
GHC-66228 View pattern in expression context A view pattern was used in an expression, rather than a pattern. 9.6.1
GHC-68686 Cannot parse LANGUAGE pragma The arguments to the LANGUAGE pragma could not be parsed 9.6.1
GHC-69158 Conflicting exports Different identifiers with the same name are (re-)exported from the same module. 9.6.1
GHC-69925 Illegal unboxed string literal in pattern Illegal unboxed string literal in pattern. 9.6.1
GHC-70712 Double dots in record update Double-dot syntax is not allowed in a record update. 9.6.1
GHC-71614 Lambda requires at least one parameter A lambda expression must have at least one parameter. 9.6.1
GHC-75356 Export item suggests constructors/methods An export item suggests that (in-scope) constructors or class methods exist when they do not. 9.6.1
GHC-76037 Not in scope An identifier is not in scope. 9.6.1
GHC-77037 No explicit import list Items brought into scope are not listed explicitly. 9.6.1
GHC-77539 Illegal tuple constraint A tuple of constraints was used without enabling the ConstraintKinds extension 9.6.1
GHC-78892 let-syntax in pattern An attempt has been made to use a let expression whilst pattern matching. 9.6.1
GHC-80768 Class kind signatures need to be constraints It is an error to use type families in the return kind of a class 9.6.1
GHC-81995 Unused "do" bind A return value of a monadic action is ignored 9.6.1.
GHC-83475 Unused Record Wildcard Pattern contains record wildcard that is not used 9.6.1
GHC-83865 Type Mismatch You provided a value of a given type, whereas GHC expected a different type. 9.6.1
GHC-84077 Type application without space A type application with @ does not have a space before. 9.6.1
GHC-87139 Illegal deriving strategy Use of a deriving strategy without enabling the corresponding language extension 9.8.1
GHC-87429 Illegal datatype context Constraints present in datatype declaration without DatatypeContexts. 9.6.1
GHC-87491 Found 'qualified' after the module qualified after the module requires the ImportQualifiedPost extension. 9.6.1
GHC-88464 Variable not in scope An unknown variable name was referenced. 9.6.1
GHC-88747 Precedence parsing error Cannot determine the order of operators in an expression 9.6.1
GHC-88933 Non-numeric type in default declaration Default declarations may only mention types which implement the Num type class 9.6.1
GHC-89347 Constraint tuple arity too large A constraint cannot be defined on a tuple with a big arity 9.6.1
GHC-90177 Orphan instance An instance was defined separately from its type or class. 9.6.1
GHC-90584 Deriving `Typeable` has no effect The type class `Typeable` does not need to be derived. 9.6.1
GHC-91028 Cannot equate polymorphic types with type variables During type inference, GHC can't instantiate a type variable with a type that is itself polymorphic. 9.6.1
GHC-91938 Equations have different number of arguments Each equation in a function definition must have the same number of arguments. 9.6.1
GHC-92994 Unexpected nested forall in foreign declaration A foreign function import uses a higher-rank type. 9.6.1
GHC-93557 Illegal typeclass instance Illegal typeclass instance 9.8.1
GHC-94458 Illegal position of Haddock comment A Haddock comment appears in an illegal position 9.6.1
GHC-94817 Tab character A tab character occurred in the input file. 9.6.1
GHC-95644 Missing space after exclamation mark `!` Bang pattern in expression context. 9.6.1
GHC-95781 Invalid type application The expression cannot be applied to the given type argument. 9.6.1
GHC-95909 Missing strict fields Constructor was not instantiated with required strict field(s). 9.6.1
GHC-97044 User-specified instance is not allowed Type class does not allow user-specified instances 9.6.1
GHC-97170 Duplicate role annotations A type declaration has more than one accompanying role annotation 9.8.1
GHC-97441 Overflowed Literals Literal overflowing range of supported values 9.6.1
GHC-97739 Kind and type arguments out of dependency order Kind arguments must occur prior to the types that they classify. 9.6.1
GHC-98980 Command syntax in pattern Arrow command syntax was used in a pattern. 9.6.1
GHC-99565 Multiple default declarations Multiple default declarations are not allowed 9.6.1
GHC-99623 Import item suggests constructors/methods An import item suggests that (in-scope) constructors or class methods exist when they do not. 9.6.1