AllowAmbiguousTypes doesn't work with UndecidableSuperClasses
Given the code below, test1
and test2
are the same except the former has an ambiguous type and the latter does not. The compiler rejects the former and accepts the latter.
{-# LANGUAGE UndecidableSuperClasses #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeFamilies #-}
class A (T a) => A a where
type T a
test1 :: forall a. A a => ()
test1 = ()
test2 :: A a => proxy a -> ()
test2 _ = ()
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1-rc3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |