Glasgow Haskell Compiler
9.13.20250511
  • 1. Introduction
  • 2. Release notes
  • 3. Using GHCi
  • 4. Using runghc
  • 5. Using GHC
  • 6. Language extensions
    • 6.1. Introduction
    • 6.2. Syntax
    • 6.3. Import and export
    • 6.4. Types
    • 6.5. Records
    • 6.6. Deriving mechanism
    • 6.7. Patterns
    • 6.8. Class and instances declarations
      • 6.8.1. Multi-parameter type classes
      • 6.8.2. Undecidable (or recursive) superclasses
      • 6.8.3. Constrained class method types
      • 6.8.4. Default method signatures
      • 6.8.5. Detailed requirements for default type signatures
      • 6.8.6. Nullary type classes
      • 6.8.7. Functional dependencies
      • 6.8.8. Instance declarations and resolution
    • 6.9. Literals
    • 6.10. Constraints
    • 6.11. Type signatures
    • 6.12. Bindings and generalisation
    • 6.13. Template Haskell
    • 6.14. Bang patterns and Strict Haskell
    • 6.15. Parallel and Concurrent
    • 6.16. Unboxed types and primitive operations
    • 6.17. Foreign function interface (FFI)
    • 6.18. Safe Haskell
    • 6.19. Miscellaneous
    • 6.20. Pragmas
  • 7. Extending and using GHC as a Library
  • 8. Profiling
  • 9. Debugging compiled programs
  • 10. What to do when something goes wrong
  • 11. Hints
  • 12. Other Haskell utility programs
  • 13. Running GHC on Win32 systems
  • 14. FFI and the JavaScript Backend
  • 15. Using the GHC WebAssembly backend
  • 16. Known bugs and infelicities
  • 17. Eventlog encodings
  • 18. Glossary
  • 19. Care and feeding of your GHC User’s Guide
Glasgow Haskell Compiler
  • 6. Language extensions
  • 6.8. Class and instances declarations
  • View page source

6.8. Class and instances declarations¶

This section documents GHC’s type-class extensions. There’s lots of background in the paper Type classes: exploring the design space (Simon Peyton Jones, Mark Jones, Erik Meijer).

  • 6.8.1. Multi-parameter type classes
  • 6.8.2. Undecidable (or recursive) superclasses
  • 6.8.3. Constrained class method types
  • 6.8.4. Default method signatures
  • 6.8.5. Detailed requirements for default type signatures
  • 6.8.6. Nullary type classes
  • 6.8.7. Functional dependencies
  • 6.8.8. Instance declarations and resolution
Previous Next

© Copyright 2023, GHC Team.

Built with Sphinx using a theme provided by Read the Docs.