GHC's goal is to be good enough at inlining and optimisation that you shouldn't take a performance hit for adding layers of abstraction. Sometimes it needs help (eg inlining pragmas). So as Don implies, it might be worth digging a bit to see where the performance hit comes from.
Simon | -----Original Message----- | From: haskell-cafe-boun...@haskell.org [mailto:haskell-cafe- | boun...@haskell.org] On Behalf Of Don Stewart | Sent: 06 April 2011 18:19 | To: Sean Leather | Cc: Haskell Café List | Subject: Re: [Haskell-cafe] mtlx has a nice design but is slow | | Is the package missing some obvious inlining in the instances? | | On Wed, Apr 6, 2011 at 10:13 AM, Sean Leather <leat...@cs.uu.nl> wrote: | > I just refactored my type and transform system prototype (introduced in [1] | > but changed since then) from using mtlx [2] (type-indexed monad | transformers | > described in [3]) to mtl using RWST. mtlx allowed me to cleanly separate | the | > various monadic components in a convenient way. Unfortunately, I found it | to | > be too slow. The refactoring was an experiment to see how slow. I was | rather | > surprised: | > | > Running time of a compiled main with a list of tests: | > mtlx (7 transformers): 2 min 52 sec | > mtl (RWST): 0 min 13 sec | > | > It's frustrating to see such a huge performance gap for a better design. | > | > Regards, | > Sean | > | > [1] | > http://splonderzoek.blogspot.com/2011/03/draft-type-changing-program- | improvement.html | > [2] http://hackage.haskell.org/package/mtlx | > [3] http://www.ittc.ku.edu/~marks/cgi-bin/pubs/monadfactory.pdf | > | > | > _______________________________________________ | > Haskell-Cafe mailing list | > Haskell-Cafe@haskell.org | > http://www.haskell.org/mailman/listinfo/haskell-cafe | > | > | | _______________________________________________ | Haskell-Cafe mailing list | Haskell-Cafe@haskell.org | http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe