Skip to content
Snippets Groups Projects
Commit 0cdef807 authored by parsonsmatt's avatar parsonsmatt Committed by Marge Bot
Browse files

Add a note about instance visibility across component boundaries

In principle, the *visible* instances are
* all instances defined in a prior top-level declaration group
  (see docs on `newDeclarationGroup`), or
* all instances defined in any module transitively imported by the
  module being compiled

However, actually searching all modules transitively below the one being
compiled is unreasonably expensive, so `reifyInstances` will report only the
instance for modules that GHC has had some cause to visit during this
compilation.  This is a shortcoming: `reifyInstances` might fail to report
instances for a type that is otherwise unusued, or instances defined in a
different component.  You can work around this shortcoming by explicitly importing the modules
whose instances you want to be visible. GHC issue #20529
has some discussion around this.

Fixes #20529
parent 5630dde6
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment