<div dir="ltr"><div><div>Here's the profiling summary that I got:</div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">COST CENTRE                      MODULE                              %time %alloc</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">getOverhead                      Criterion.Monad                      41.3    0.0</font></div><div><font face="monospace, monospace">>>=                              Lucid.Base                           19.2   41.6</font></div><div><font face="monospace, monospace">makeElement.\.\                  Lucid.Base                           11.4   23.4</font></div><div><font face="monospace, monospace">fromHtmlEscapedString            Blaze.ByteString.Builder.Html.Utf8    7.9   14.9</font></div><div><font face="monospace, monospace">>>=                              Data.Vector.Fusion.Util               2.3    1.7</font></div><div><font face="monospace, monospace">return                           Lucid.Base                            1.4    2.1</font></div><div><font face="monospace, monospace">runBenchmark.loop                Criterion.Measurement                 1.2    0.0</font></div><div><font face="monospace, monospace">with.\                           Lucid.Base                            1.0    2.1</font></div><div><font face="monospace, monospace">foldlMapWithKey                  Lucid.Base                            0.5    2.6</font></div><div><font face="monospace, monospace">streamDecodeUtf8With.decodeChunk Data.Text.Encoding                    0.0    1.7</font></div></div><div><br></div><div>As expected, HtmlT's bind is the expensive bit. However I've been unable to encourage it to go away using INLINE pragmas.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 January 2017 at 15:45, Oliver Charles <span dir="ltr"><<a href="mailto:ollie@ocharles.org.uk" target="_blank">ollie@ocharles.org.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I would start by inlining operations in the Functor, Applicative and Monad classes for your monad and all the layers in the stack (such as HtmlT). An un-inlining monadic bind can end up allocating a lot (as it's such a common operation)</p><div class="HOEnZb"><div class="h5">
<br><div class="gmail_quote"><div dir="ltr">On Sun, 29 Jan 2017, 3:32 pm Saurabh Nanda, <<a href="mailto:saurabhnanda@gmail.com" target="_blank">saurabhnanda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class="m_-155915335062936175gmail_msg">Please tell me what to INLINE. I'll update the benchmarks. <div dir="auto" class="m_-155915335062936175gmail_msg"><br class="m_-155915335062936175gmail_msg"></div><div dir="auto" class="m_-155915335062936175gmail_msg">Also, shouldn't this be treated as a GHC bug then? Using monad transformers as intended should not result in a severe performance penalty! Either monad transformers themselves are a problem or GHC is not doing the right thing. </div></div><div dir="auto" class="m_-155915335062936175gmail_msg"><div dir="auto" class="m_-155915335062936175gmail_msg"><br class="m_-155915335062936175gmail_msg"></div><div dir="auto" class="m_-155915335062936175gmail_msg">-- Saurabh. </div></div><div class="gmail_extra m_-155915335062936175gmail_msg"><br class="m_-155915335062936175gmail_msg"><div class="gmail_quote m_-155915335062936175gmail_msg">On 29 Jan 2017 7:50 pm, "Oliver Charles" <<a href="mailto:ollie@ocharles.org.uk" class="m_-155915335062936175gmail_msg" target="_blank">ollie@ocharles.org.uk</a>> wrote:<br type="attribution" class="m_-155915335062936175gmail_msg"><blockquote class="m_-155915335062936175m_511630468224426616quote m_-155915335062936175gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="m_-155915335062936175gmail_msg">I would wager a guess that this can be solved with INLINE pragmas. We recently added INLINE to just about everything in transformers and got a significant speed up.</p><div class="m_-155915335062936175m_511630468224426616elided-text m_-155915335062936175gmail_msg">
<br class="m_-155915335062936175gmail_msg"><div class="gmail_quote m_-155915335062936175gmail_msg"><div dir="ltr" class="m_-155915335062936175gmail_msg">On Sun, 29 Jan 2017, 11:18 am David Turner, <<a href="mailto:dct25-561bs@mythic-beasts.com" class="m_-155915335062936175gmail_msg" target="_blank">dct25-561bs@mythic-beasts.com</a><wbr>> wrote:<br class="m_-155915335062936175gmail_msg"></div><blockquote class="gmail_quote m_-155915335062936175gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">I would guess that the issue lies within HtmlT, which looks vaguely similar to a WriterT transformer but without much in the way of optimisation (e.g. INLINE pragmas). But that's just a guess after about 30 sec of glancing at <a href="https://hackage.haskell.org/package/lucid-2.9.7/docs/src/Lucid-Base.html" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">https://hackage.haskell.<wbr>org/package/lucid-2.9.7/docs/<wbr>src/Lucid-Base.html</a> so don't take it as gospel.</div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">My machine is apparently an i7-4770 of a similar vintage to yours, running Ubuntu in a VirtualBox VM hosted on Windows. 4GB of RAM in the VM, 16 in the host FWIW.</div></div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="gmail_extra m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" dir="auto"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="gmail_quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">On 29 Jan 2017 10:26, "Saurabh Nanda" <<a href="mailto:saurabhnanda@gmail.com" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">saurabhnanda@gmail.com</a>> wrote:<br type="attribution" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><blockquote class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Thank you for the PR. Does your research suggest something is wrong with HtmlT when combined with any MonadIO, not necessarily ActionT? Is this an mtl issue or a lucid issue in that case?</div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Curiously, what's your machine config? I'm on a late 2011 macbook pro with 10G ram and some old i5. </div><font color="#888888" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">-- Saurabh. </div></font><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779elided-text m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div dir="auto" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="gmail_extra m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" dir="auto"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="gmail_quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">On 29 Jan 2017 3:05 pm, "David Turner" <<a href="mailto:dct25-561bs@mythic-beasts.com" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">dct25-561bs@mythic-beasts.com</a><wbr>> wrote:<br type="attribution" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><blockquote class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779m_5533119282879836378quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">The methodology does look reasonable, although I think you should wait for all the scotty threads to start before starting the benchmarks, as I see this interleaved output:</font><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Setting phasers to stun... (port 3002) (ctrl-c to quit)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Setting phasers to stun... (port 3003) (ctrl-c to quit)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Setting phasers to stun... (port 3001) (ctrl-c to quit)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking bareScotty</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Setting phasers to stun... (port 3000) (ctrl-c to quit)</font></div></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Your numbers are wayyy slower than the ones I see on my dev machine:</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking bareScotty</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Setting phasers to stun... (port 3000) (ctrl-c to quit)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 10.94 ms   (10.36 ms .. 11.52 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.979 R²   (0.961 R² .. 0.989 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 12.53 ms   (11.98 ms .. 13.28 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              1.702 ms   (1.187 ms .. 2.589 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 66% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking bareScottyBareLucid</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 12.95 ms   (12.28 ms .. 13.95 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.972 R²   (0.951 R² .. 0.989 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 12.20 ms   (11.75 ms .. 12.69 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              1.236 ms   (991.3 μs .. 1.601 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 50% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking transScottyBareLucid</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 12.05 ms   (11.70 ms .. 12.39 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.992 R²   (0.982 R² .. 0.996 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 12.43 ms   (12.06 ms .. 13.01 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              1.320 ms   (880.5 μs .. 2.071 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 54% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking transScottyTransLucid</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 39.73 ms   (32.16 ms .. 49.45 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.668 R²   (0.303 R² .. 0.969 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 42.59 ms   (36.69 ms .. 54.38 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              16.52 ms   (8.456 ms .. 25.96 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 92% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking bareScotty</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 11.46 ms   (10.89 ms .. 12.07 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.986 R²   (0.975 R² .. 0.994 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 11.73 ms   (11.45 ms .. 12.07 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              800.6 μs   (636.8 μs .. 975.3 μs)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 34% (moderately inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">but nonetheless I do also see the one using renderTextT to be substantially slower than the one without.</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">I've sent you a PR [1] that isolates Lucid from Scotty and shows that renderTextT is twice as slow over IO than it is over Identity, and it's ~10% slower over Reader too:</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking renderText</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 5.529 ms   (5.328 ms .. 5.709 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.990 R²   (0.983 R² .. 0.995 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 5.645 ms   (5.472 ms .. 5.888 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              593.0 μs   (352.5 μs .. 908.2 μs)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 63% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking renderTextT Id</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 5.439 ms   (5.243 ms .. 5.640 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.991 R²   (0.985 R² .. 0.996 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 5.498 ms   (5.367 ms .. 5.631 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              408.8 μs   (323.8 μs .. 552.9 μs)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 45% (moderately inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking renderTextT Rd</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 6.173 ms   (5.983 ms .. 6.396 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.990 R²   (0.983 R² .. 0.995 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 6.284 ms   (6.127 ms .. 6.527 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              581.6 μs   (422.9 μs .. 773.0 μs)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 55% (severely inflated)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">benchmarking renderTextT IO</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">time                 12.35 ms   (11.84 ms .. 12.84 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">                     0.989 R²   (0.982 R² .. 0.995 R²)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">mean                 12.22 ms   (11.85 ms .. 12.76 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">std dev              1.159 ms   (729.5 μs .. 1.683 ms)</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">variance introduced by outliers: 50% (severely inflated)</font></div></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">I tried replacing</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">    forM [1..10000] (\_ -> div_ "hello world!")</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">with</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">    replicateM_ 10000 (div_ "hello world!")<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">which discards the list of 10,000 () values that the forM thing generates, but this made very little difference.</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Hope this helps,</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">David</font><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">[1] <a href="https://github.com/vacationlabs/monad-transformer-benchmark/pull/2" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">https://github.com/<wbr>vacationlabs/monad-<wbr>transformer-benchmark/pull/2</a><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="gmail_extra m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font><div class="gmail_quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779m_5533119282879836378elided-text m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">On 29 January 2017 at 07:26, Saurabh Nanda <span dir="ltr" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><<a href="mailto:saurabhnanda@gmail.com" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">saurabhnanda@gmail.com</a>></span> wrote:<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><blockquote class="gmail_quote m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779m_5533119282879836378elided-text m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div dir="ltr" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Hi,
</font><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">I was noticing severe drop in performance when Lucid's HtmlT was being combined with Scotty's ActionT. I've tried putting together a minimal repro at <a href="https://github.com/vacationlabs/monad-transformer-benchmark" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">https://github.com/<wbr>vacationlabs/monad-<wbr>transformer-benchmark</a> Request someone with better knowledge of benchmarking to check if the benchmarking methodology is correct.</font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">Is my reading of 200ms performance penalty correct?</font></div><span class="m_-155915335062936175m_511630468224426616m_-8161578511397438535m_-2113746514012922779m_5533119282879836378m_-2966468118207189964gmail-HOEnZb m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><font color="#888888" face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">-- Saurabh.</div><div class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div></font></span></div>
</div><font face="monospace, monospace" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">______________________________<wbr>_________________<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
Haskell-Cafe mailing list<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
To (un)subscribe, modify options or view archives go to:<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
Only members subscribed via the mailman list are allowed to post.<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></font></blockquote></div><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div></div>
</blockquote></div><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div></div></div></div>
</blockquote></div><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg"></div></div></div>
______________________________<wbr>_________________<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
Haskell-Cafe mailing list<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
To (un)subscribe, modify options or view archives go to:<br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br class="m_-155915335062936175m_511630468224426616m_-8161578511397438535gmail_msg m_-155915335062936175gmail_msg">
Only members subscribed via the mailman list are allowed to post.</blockquote></div>
</div></blockquote></div><br class="m_-155915335062936175gmail_msg"></div>
</blockquote></div>
</div></div></blockquote></div><br></div>