diff options
| -rw-r--r-- | compiler/typecheck/TcTyClsDecls.hs | 7 | ||||
| -rw-r--r-- | testsuite/tests/typecheck/should_compile/T6018.hs-boot | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/compiler/typecheck/TcTyClsDecls.hs b/compiler/typecheck/TcTyClsDecls.hs index d1a6c76ea5..c21baf04bd 100644 --- a/compiler/typecheck/TcTyClsDecls.hs +++ b/compiler/typecheck/TcTyClsDecls.hs @@ -699,10 +699,9 @@ tcFamDecl1 parent -- If Nothing, this is an abstract family in a hs-boot file; -- but eqns might be empty in the Just case as well ; case mb_eqns of - Nothing -> - return [ATyCon $ buildFamilyTyCon tc_name tvs' Nothing - AbstractClosedSynFamilyTyCon kind parent - NotInjective ] + Nothing -> return + [ ATyCon $ buildFamilyTyCon tc_name tvs' (resultVariableName sig) + AbstractClosedSynFamilyTyCon kind parent inj' ] Just eqns -> do { -- Process the equations, creating CoAxBranches diff --git a/testsuite/tests/typecheck/should_compile/T6018.hs-boot b/testsuite/tests/typecheck/should_compile/T6018.hs-boot index 8ac5ce9e51..e31903a312 100644 --- a/testsuite/tests/typecheck/should_compile/T6018.hs-boot +++ b/testsuite/tests/typecheck/should_compile/T6018.hs-boot @@ -2,6 +2,9 @@ module T6018 where --- this declaration uses different type variables than the one in the source --- file but it should be accepted nevertheless +-- these declarations use different type variables than the ones in the source +-- file but they should be accepted nevertheless + type family F d e f = (r :: k) | r -> d e f + +type family FClosed (d :: *) (e :: *) (f :: *) = (r :: *) | r -> d e f where .. |
