#7102: Type family instance overlap accepted in ghci
------------------------------------------+---------------------------------
  Reporter:  exbb2                        |          Owner:                  
      Type:  bug                          |         Status:  closed          
  Priority:  normal                       |      Milestone:                  
 Component:  GHCi                         |        Version:  7.4.1           
Resolution:  wontfix                      |       Keywords:                  
        Os:  Unknown/Multiple             |   Architecture:  Unknown/Multiple
   Failure:  GHC accepts invalid program  |     Difficulty:  Unknown         
  Testcase:                               |      Blockedby:                  
  Blocking:                               |        Related:                  
------------------------------------------+---------------------------------
Changes (by igloo):

  * status:  new => closed
  * difficulty:  => Unknown
  * resolution:  => wontfix


Comment:

 I'm inclined to say that this is not a bug. In a similar way to how ghci
 lets you shadow variables:
 {{{
 Prelude> let f = 'a'
 Prelude> let f = True
 Prelude> f
 True
 }}}
 it is letting you shadow type family instances:
 {{{
 Prelude> :set -XTypeFamilies
 Prelude> type family F x :: *
 Prelude> type instance F Int = Bool
 Prelude> type instance F Int = Char
 Prelude> :t undefined :: F Int
 undefined :: F Int :: Char
 }}}
 I think that this makes sense: If you imagine that `F` is defined in some
 other package, and you are developing the type on the RHS, then if this
 were not possible then you'd have to restart ghci each time you alter the
 type.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7102#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to