[GHC] #10359: Tuple constraint synonym led to asymptotic performance lossage

GHC ghc-devs at haskell.org
Wed Apr 29 13:29:30 UTC 2015


#10359: Tuple constraint synonym led to asymptotic performance lossage
-------------------------------------+-------------------------------------
        Reporter:  axch              |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.6.3
      Resolution:                    |                Keywords:
Operating System:  Linux             |            Architecture:  x86_64
 Type of failure:  Runtime           |  (amd64)
  performance bug                    |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by axch):

 In my actual use case, `test3` doesn't compile.  The difference is
 that `Box` is also existentially quantified over the type of `obj`,
 because I want a heterogeneous collection of `Box`es.  Translated to
 this context, the compilation error is

 {{{
 Bug2.hs:51:29:
     Record update for insufficiently polymorphic field: obj :: a
     In the expression: b {obj = func number obj}
     In an equation for `do_step3':
         do_step3 number b@(Box {..}) = b {obj = func number obj}
 }}}

 Offending source file enclosed.  I reproduce `test` and `test4`, just
 to confirm that they still execute but with bad asymptotics; I elide
 `test2`, which is what I ended up doing to get rolling.  Is this
 compilation error also a bug?

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


More information about the ghc-tickets mailing list