Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1822

C

Control.Monad.Writer

Personal blog · donsbot.wordpress.com · on HN as donsprogramming

Control.Monad.Writer is a personal blog at donsbot.wordpress.com about programming. Since 2009, 40 different Hacker News readers have linked it 92 times, most often “Can higher-order functions be performant? (Haskell)”. The last post was in 2022, but the archive is still widely read.

Visit the blog
92mentions?
6recommend?
40HN people?
2009–2020first – last linked?
Links on Hacker News per year · peak 29 in 2010

Sometimes recommended · 6 of 34 sampled comments recommend it?

Why HN links it

HN readers link Don Stewart's Haskell blog for its roll-your-own XMonad window manager tutorials, which cover zippers and QuickCheck, and for posts on stream fusion and Haskell performance.

Recommended for · 6 comments
Called a good, readable introduction to Haskell thinking; a stream fusion post more approachable.

Summarised by Claude from a sample of 34 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Software engineering, compilers, languages

The author on HN?

dons · 9,590 karma · member since 2007

Don Stewart Functional programmer, PhD in computer science, and quantitative finance developer. I've been programming Haskell for the past 19 years. --I write trading software and lead a dev team at Standard Chartered Bank.-- I manage testing and verification at Facebook. Co-author of the book "Real World Haskell", and of the xmonad window manager. I founded the Haskell Platform project and wrote the bytestring and binary libraries for Haskell. I'm interested in building great software, type-dr…

From their public HN profile, which links to this site.

Most-linked posts?

  1. Can higher-order functions be performant? (Haskell)
    4 people · 4 mentions · first linked 2012-04-11
  2. Evolving Faster Haskell Programs (now with LLVM)
    3 people · 3 mentions · first linked 2010-03-01
  3. Haskell as fast as C: working at a high altitude for low level performance
    3 people · 3 mentions · first linked 2009-09-07
  4. Visualising the Haskell Universe
    2 people · 3 mentions · first linked 2009-03-16
  5. Fusion makes functional programming fun
    2 people · 2 mentions · first linked 2010-02-26
  6. Very fast, scalable mutable maps and hashes for Haskell
    2 people · 2 mentions · first linked 2009-09-27
  7. Too many Haskell libraries. What are we going to do about it?
    2 people · 2 mentions · first linked 2010-05-31
  8. Evolving faster Haskell programs
    2 people · 2 mentions · first linked 2009-03-09
  9. Haskell Package Popularity Rankings : August 2009
    2 people · 2 mentions · first linked 2009-08-06
  10. /
    2 people · 2 mentions · first linked 2011-05-08

What Hacker News says?

  1. Standard Chartered | London and Singapore | Full-time and Contracting 10+ open positions for Haskell developers in the Strats team at Standard Chartered. 2 open positions in the developer efficiency team working on our build system and tooling. https://donsbot.wordpress.com/2016/06/03/multiple-haskell-de...

    Comment linking /2016/06/03/multiple-haskell-developer-roles-in-strats-at-standard-chartered/

    on “Ask HN: Who is hiring? (June 2016)”
  2. Submitted Back to old tricks, or, baby steps in Rust as a story · 173 points

    HN discussion
  3. Standard Chartered | London and Singapore | Full-time and Contracting 10+ open positions for Haskell developers in the Strats team at Standard Chartered. 1 open position in the developer efficiency team working on our build system and tooling. https://donsbot.wordpress.com/2016/06/03/multiple-haskell-de...

    Comment linking /2016/06/03/multiple-haskell-developer-roles-in-strats-at-standard-chartered/

    on “Ask HN: Who is hiring? (August 2016)”
  4. Submitted Haskell as fast as C: working at a high altitude for low level performance as a story · 123 points

    HN discussion
  5. Standard Chartered | ONSITE | Software Engineers (full time) https://donsbot.wordpress.com/2016/02/25/haskell-developer-r... 7+ roles for Haskell developers in London and Singapore working on a large Haskell code base for trading and risk management. Join a growing team.

    Comment linking /2016/02/25/haskell-developer-roles-at-standard-chartered-london-singapore-2/

    on “Ask HN: Who is hiring? (March 2016)”
  6. Submitted Evolving Faster Haskell Programs (now with LLVM) as a story · 63 points

    HN discussion
  7. eru · 2014-07-08Recommends
    >> Write software faster with fewer bugs > Is there an evidentiary basis for the 'fewer bugs' claim? What type of software are people writing faster with Haskell? http://donsbot.wordpress.com/2007/05/01/roll-your-own-window... and especially http://donsbot.wordpress.com/2007/05/17/roll-your-own-window... give a good introduction into the mindset behind programming in Haskell. The latter focusses on zippers. Zippers…

    Comment linking /2007/05/17/roll-your-own-window-manager-tracking-focus-with-a-zipper/

    on “The Developer's Dystopian Future”
  8. Submitted Smoking fast Haskell code using GHC's new LLVM codegen as a story · 63 points

    HN discussion
  9. Haskell dev at Standard Chartered Bank , London UK Strats team at Standard Chartered, London. A typed functional programming developer role on the trading floor. The role is highly development focused, and you will use Haskell for almost all tasks: data analysis, market data publishing, database access, web services, desktop GUIs, large parallel tasks, quantitative models, solvers, everything. We have our own Haskel…

    Comment linking /2015/03/16/haskell-development-role-in-strats-at-standard-chartered/

    on “Ask HN: Who is hiring? (April 2015)”
  10. Submitted Multicore Programming in Haskell Now as a story · 58 points

    HN discussion
  11. Well, of course. Rust is not designed around immutable data structures. There are going to be differences because it's simply not the same language. This [0] example, written by a notable Haskeller, illustrates what I mean pretty well and also touches on what you just pointed out. It's also very consistent with my own experience. [0]: https://donsbot.wordpress.com/2020/07/04/back-to-old-tricks-...

    Comment linking /2020/07/04/back-to-old-tricks-or-baby-steps-in-rust/

    on “Linux kernel in-tree Rust support”
  12. Submitted Hackage, Cabal and the Haskell Platform: The Second Year : Report from ICFP as a story · 50 points

    HN discussion
  13. eru · 2016-07-25Recommends
    XMonad comes with quite a few QuickCheck properties. See https://donsbot.wordpress.com/2007/05/17/roll-your-own-windo... and https://donsbot.wordpress.com/2007/05/01/roll-your-own-windo... for some readable introduction. One might consider proving the properties instead of just checking them with a few thousand random examples.

    Comment linking /2007/05/01/roll-your-own-window-manager-part-1-defining-and-testing-a-model/

    on “Goodbye, Object Oriented Programming”
  14. Submitted Too many Haskell libraries. What are we going to do about it? as a story · 38 points

    HN discussion
  15. > .. you can write vastly more complicated programs that are, say, 80% as fast as hand-optimized C for only 10% of the effort of hand-optimized C. Computer Language Benchmarks of GHC versus C don't seem to be close to matching your 80% as fast claim [1]. Also, the 10% of the effort of hand-optimized C bit - seem to recall there was a caveat - "if you happen to Don Stewart" [2]. The following is just my vague, uninfo…

    Comment linking /2008/05/06/write-haskell-as-fast-as-c-exploiting-strictness-laziness-and-recursion/

    on “Rust as a gateway drug to Haskell”
  16. Submitted Fusion makes functional programming fun as a story · 37 points

    HN discussion
  17. Another thing to keep in mind is that with everything being immutable you end up with a pure language. Once that happens, the compiler starts being able to perform some really nice rewrites of your code really easily. The problem is that this is all or nothing - unless your language is actually pure you can't do this. See this blog post for more < https://donsbot.wordpress.com/2008/06/04/haskell-as-fast-as-...

    Comment linking /2008/06/04/haskell-as-fast-as-c-working-at-a-high-altitude-for-low-level-performance/&gt;

    on “15 Years of Concurrency”
  18. Submitted Painless NP-complete problems: an embedded DSL for SMT solving as a story · 35 points

    HN discussion
  19. windlep · 2015-04-26Recommends
    I meant more that languages with an iterator/generator usually have similar constant space usage. That is a drastic oversimplification of stream fusion and fails to mention other practical outcomes as you mention, along with a variety of optimizations. I found this posting a little more approachable to seeing the various optimizations possible with stream fusion: https://donsbot.wordpress.com/2008/06/04/haskell-as-f…

    Comment linking /2008/06/04/haskell-as-fast-as-c-working-at-a-high-altitude-for-low-level-performance/

    on “Becoming Productive in Haskell”
  20. Submitted Lots of Haskell libraries now. What are we going to do about it? as a story · 35 points

    HN discussion
  21. The bank Standard Chartered[1] uses it, and instead of GHC they use their own compiler. There's some more info in this job posting[2]. [1] http://en.wikipedia.org/wiki/Standard_Chartered [2] https://donsbot.wordpress.com/2014/08/17/haskell-development...

    Comment linking /2014/08/17/haskell-development-job-at-standard-chartered/

    on “Becoming Productive in Haskell”
  22. Submitted Very fast, scalable mutable maps and hashes for Haskell as a story · 31 points

    HN discussion
  23. eru · 2011-09-21Recommends
    Also writing up the laws that the fuzzers checks, is a good exercise in thinking about your API. Read http://donsbot.wordpress.com/2007/05/01/roll-your-own-window... and http://donsbot.wordpress.com/2007/05/17/roll-your-own-window... for some examples. Quick also not only gives you the failing cases, but tries to simplify and shrink them first.

    Comment linking /2007/05/17/roll-your-own-window-manager-tracking-focus-with-a-zipper/

    on “Running a startup on Haskell”
  24. Submitted Control.Monad.Inception as a story · 29 points

    HN discussion
  25. The pretentious view that Haskell's core is a mathematical structure familiar to mathematicians is wrong. Haskell borrows concepts from category theory (a "field" so abstract from most math that most mathematicians don't need but a handful of its concepts) to label typeclasses, and those typeclasses don't always follow from their namesake. Further, Haskell could exist and keep its property of referential transparenc…

    Comment linking /2009/01/31/reviving-the-gofer-standard-prelude-circa-1994/

    on “Why Python is Slow: Looking Under the Hood”
  26. Submitted Parallel programming in Haskell: a reading list as a story · 23 points

    HN discussion
  27. Argument from authority is not much of an argument, but dons is intensely focused on ghc performance, here's an easy to google example. http://donsbot.wordpress.com/2010/02/21/smoking-fast-haskell... It's not to hard for you to go get benchmark numbers in haskell, check out http://www.serpentine.com/blog/2009/09/29/criterion-a-new-be... or read about how snap does its benchmarking. As for erlang, there's a lot of pa…

    Comment linking /2010/02/21/smoking-fast-haskell-code-using-ghcs-new-llvm-codegen/

    on “Haskell web programming (a simple tutorial)”
  28. Submitted Multicore Haskell Now (slides) as a story · 22 points

    HN discussion
  29. Reddit is very large: there are almost certainly subreddits for that sort of stuff. As an example, /r/Haskell[1] is fairly technical (it is frequented by people such as dons[2] and gwern[3], and presumably they would've moved on from r/haskell if it became overly banal). (Also, a brief googling turns up /r/startups[4], but I've got no idea of its standard of discourse.) [1]: http://www.reddit.com/r/haskell [2]: http…

    Comment linking /

    on “How Reddit's cofounders built Reddit with an army of fake accounts”
  30. Submitted Self-optimizing data structures: using types to make lists faster as a story · 21 points

    HN discussion

Search all of HN for donsbot.wordpress.com

Linked by the same people?