Fix Trac #8485.
The problem was that the renamer treated role annotations by looking up the annotated type in the module being compiled. If this check succeeded, it was assumed that the annotated type was being compiled at the same time. But this assumption is false! In GHCi (and Template Haskell), sometimes compilation within one module can be staged. So, now there is a more intricate check for orphan role annotations. This also has the benefit of producing better error messages.
Showing with 45 additions and 29 deletions