
#14004: G -------------------------------------+------------------------------------- Reporter: zaoqi | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by AntC): Thanks @zaoqi, you've now provided the full `instance Eq Dyn`. It's defining `(==)` in terms of `geq`. But you haven't changed the overlap pragmas -- see my comment:4. So you get the same compile fail. I think your `instance Eq Dyn` is probably not what you want. `geq` looks at whether the ''types'' are the same, not the values. So you're going to get `Dyn "hello" == Dyn "bye"` coming out `True`. You are still not telling us what you think is wrong/what you expect. So far as I can tell, GHC is behaving correctly. I would not expect this code to compile. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14004#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler