PolyKinds and mutually recursive modules
A.hs
{-# LANGUAGE PolyKinds #-}
module A where
import Test
class C (a :: k)
A.hs-boot
{-# LANGUAGE PolyKinds #-}
module A where
class C (a :: k)
B.hs
{-# LANGUAGE PolyKinds #-}
module Test where
import {-# SOURCE #-} A
Leads to:
A.hs-boot:5:7:
Class `C' has conflicting definitions in the module and its hs-boot file
Main module: class C (k::BOX) (a::k) RecFlag Recursive
Boot file: class C (k::BOX) (a::k) RecFlag NonRecursive
The problem is not the RecFlag, it's the k kind variable that is getting different uniques.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.6.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |