Function with type error accepted
The following program is accepted by ghc even though it is clearly wrong. The type family T is closed so T Bool cannot ever be reduced, so it must be a type error.
{-# LANGUAGE TypeFamilies #-}
module Err62 where
type family T a where
T Int = ()
x :: T Bool
x = undefined
f :: T Bool -> Bool
f _ = True
y :: Bool
y = f x
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |