[GHC] #14691: Replace EvTerm with CoreExpr

GHC ghc-devs at haskell.org
Mon Jan 22 08:46:25 UTC 2018


#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


More information about the ghc-tickets mailing list