
#3990: UNPACK doesn't unbox data families -------------------------------------+------------------------------------- Reporter: rl | Owner: Type: bug | Status: closed Priority: low | Milestone: Component: Compiler | Version: 7.0.3 Resolution: fixed | Keywords: TypeFamilies Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Runtime | Test Case: performance bug | simplCore/should_compile/T3990 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * testcase: => simplCore/should_compile/T3990 * status: new => closed * resolution: => fixed Comment: This commit [https://ghc.haskell.org/trac/ghc/changeset/353d8ae6fafe117a1cac4adf6f029a5ba... 353d8ae6/ghc] from #11348: {{{ In SCC analysis for instances as well as types/classes This big patch is in pursuit of Trac #11348. It is largely the work of Alex Veith (thank you!), with some follow-up simplification and refactoring from Simon PJ. The main payload is described in RnSource Note [Dependency analysis of type, class, and instance decls] which is pretty detailed. * There is a new data type HsDecls.TyClGroup, for a strongly connected component of type/class/instance/role decls. The hs_instds field of HsGroup disappears, in consequence This forces some knock-on changes, including a minor haddock submodule update Smaller, weakly-related things * I found that both the renamer and typechecker were building an identical env for RoleAnnots, so I put common code for RoleAnnotEnv in RnEnv. * I found that tcInstDecls1 had very clumsy error handling, so I put it together into TcInstDcls.doClsInstErrorChecks }}} deals with the ToDo in comment:13: {{{ Still to do: need to do knot-tying to allow instances to take effect within the same module. }}} So now we are good; e.g. comment:20 is fixed. I've added a test case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/3990#comment:25 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler