
#7102: Type family instance overlap accepted in ghci -------------------------------------+------------------------------------- Reporter: exbb2 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 7.4.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC accepts | Unknown/Multiple invalid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by simonpj): That is indeed very very bad. Never mind Safe Haskell -- it's just unsound. You didn't get a seg fault, but you very well might have. (For class instances it wouldn't be unsound, just possibly a bit incoherent.) I'm not sure what to do: 1. Prohibit `type instance` declarations in GHCi that overlap/override earlier ones? 2. Do (1) but also provide a way to purge the GHCi environment, so you can get back to a clean slate without restarting GHCi 3. Try to be clever: purge only functions (or whatever) whose types mention `T`. But it's tricky: what about data types mentioning `T`, and functions whose types use those data types... I incline to (2). Any other opinions? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7102#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler