performance regressions

Joachim Breitner mail at
Tue Dec 16 15:41:58 UTC 2014


Am Dienstag, den 16.12.2014, 09:59 -0500 schrieb Richard Eisenberg:
> On Dec 16, 2014, at 4:01 AM, Joachim Breitner <mail at> wrote:
> > another guess (without looking at the code, sorry): Are they in the same
> > module? I.e., can GHC specialize the code to your particular Monad?

> No, they're not in the same module. I could also try moving the
> zipWithAndUnzipM function to the same module, and even specializing it
> by hand to the right monad.

I did mean zipWithAndUnzipM, so maybe yes: Try that.

(I find it hard to believe that any polymorphic monadic code should
perform well, with those many calls to an unknown (>>=) with a function
parameter, but maybe I’m too pessimistic here.)

>  Could that be preventing the fusing?

There is not going to be any fusing here, at least not list fusion; that
would require your code to be written in terms of functions with fusion


Joachim “nomeata” Breitner
  mail at joachim-breitner.de
  Jabber: nomeata at  • GPG-Key: 0xF0FBF51F
  Debian Developer: nomeata at

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the ghc-devs mailing list