Type family instance overlap accepted in ghci
This code works if I paste it line by line in ghci, but not if i try to load or compile it.
{-# LANGUAGE TypeFamilies #-}
data Rec a b = Rec {unRec :: Rec a b -> b}
class RecursiveFun f where type A a b :: *; recurse :: f (A a b) b -> b
instance RecursiveFun Rec where type A a b = a; recurse r = unRec r r
instance RecursiveFun (->) where type A a b = Rec a b; recurse f = f (Rec f)
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.4.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | exbb2@mail.ru |
| Operating system | |
| Architecture |