[GHC] #15345: Duplication between `CoreSubst` and `SimplEnv` is very unfortunate

GHC ghc-devs at haskell.org
Thu Jul 5 16:35:22 UTC 2018


#15345: Duplication between `CoreSubst` and `SimplEnv` is very unfortunate
-------------------------------------+-------------------------------------
           Reporter:  mpickering     |             Owner:  (none)
               Type:  task           |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.4.3
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 There are lots of very similar functions in `SimplEnv` and `CoreSubst`.

 For example, in `SimpleEnv` there is a function `substIdType` and likewise
 in `CoreSubst` but they are different to each other.

 There is also a `substIdBndr` function in both modules but the one in
 `SimplEnv` calls `SimpleEnv.substIdType`, the one in `CoreSubst` doesn't
 call `CoreSubst.substIdType` but has its own inlined version. This means
 there's at least three different versions of `substIdType` floating
 around.
 The correctness of this function is crucial so it would be better not to
 duplicate it.

 Can we remove this duplication? Help me Simon!

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15345>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list