
#14691: Replace EvTerm with CoreExpr -------------------------------------+------------------------------------- Reporter: nomeata | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.3 checker) | 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 simonpj):
‘mkTrCon’ is not in scope during type checking,
Well that's very tiresome. `mkTrCon` * is defined in `Data.Typeable.Internal` * is used when generating `Typeable` evidence But it's not in the environment early enough. Hmm. What about other data types that are defined before `Data.Typeable.Internal` is even defined? How do we get away with not having `mkTrCon` in scope? I think it's probably that they don't generate any `Typeable` evidence. But `mkTrCon` itself requires no `Typeable` evidence. So one possibility would be to move it and the things it depends on into another module; or equivalently to move the bits of `Internal` that generate `Typeable` evidence somewhere else. Another (inelegant) possibility would be to retain `EvTypeable` and continue to do that in the desugarer. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14691#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler