
#12239: Dependent type family does not reduce -------------------------------------+------------------------------------- Reporter: int-index | Owner: goldfire Type: bug | Status: new Priority: high | Milestone: 8.2.1 Component: Compiler (Type | Version: 8.0.1 checker) | Keywords: TypeInType, Resolution: | TypeFamilies Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by int-index):
Does this sound like something you might tackle?
Yes. Your explanation is very helpful.
I'm sure bumps will come up along the road, but if you're feeling like getting your hands dirty here, I can continue to advise.
Thank you. So, my understanding is that during type checking `ForAllTy`s arise, but the `Kind`s in `TyVarBinder`s don't get flattened, hence the error. However, once I added a `traceFlat` to the beginning of `flatten_one` clause for `ForAllTy` it didn't show up in the compilation logs (adding it in other clauses worked, so I assume that I added it correctly). Therefore I conclude that control flow doesn't reach this part of the code and no changes will affect the result of compilation. (1) What other parts of code should be changed and how, before I can start fixing `flatten_one` for `ForAllTy`? (2) Where exactly those `ForAllTy` get inserted in the example code (in the ticket description)? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12239#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler