
#10725: Figure out how to support type synonym implementions of abstract data -------------------------------------+------------------------------------- Reporter: ezyang | Owner: ezyang Type: task | Status: closed Priority: normal | Milestone: Component: Compiler (Type | Version: 7.10.2 checker) | Resolution: fixed | Keywords: backpack Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ezyang): * status: new => closed * resolution: => fixed Comment: It was really easy, and I've implemented it on my branch. Just a few minor complications: 1. When we recompile an hsig file with the actual backing implementation, we need to notice when we define an abstract type "data A" which is implemented with a type synonym, and "swap in" the correct type synonym immediately. If we don't, when we subsequently refer to A we'll get a TyCon that is not decorated as a type synonym (despite being the same original name as a type synonym), and then type equality chokes. 2. There was a bug when serializing out hsig interface files where I was incorrectly grabbing fingerprints locally rather than from the backing implementation. That's fixed now. https://github.com/ezyang/ghc/commit/4d59c74b2381eb8e2b9c1d31111a921ed95ebd2... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10725#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler