Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    Joachim Breitner

    joachim-breitner.de · Personal blog · on HN since 2008

    Joachim Breitner, a Haskell developer, writes about GHC, formal proofs, and small programming and hardware experiments.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    HN commenters link it for background on bootstrapping GHC and for his practical posts on vector screenshots and tools like arbtt.

    Stats for nerds
    42HN people shared it
    45linked in comments
    799story points
    Nov 2025last shared
    2011people per year2025

    Top posts on HN

    1. 1
      Finding bugs in Haskell code by proving it
      2 people · 213 points · first shared 2017 · 44 comments on HN
    2. 2
      Don’t Think, Just Defunctionalize
      1 person · 118 points · first shared 2020 · 45 comments on HN
    3. 3
      Screenshots using vector graphics (gtk3 apps only)
      2 people · 89 points · first shared 2011 · 22 comments on HN
    4. 4
      Sliding Right into Information Theory
      1 person · 83 points · first shared 2018 · 8 comments on HN
    5. 5
      GHC Steering Committee Retrospective
      1 person · 75 points · first shared 2024 · 4 comments on HN
    6. 6
      Thoughts on Bootstrapping GHC (2018)
      3 people · 68 points · first shared 2018 · 11 comments on HN
    7. 7
      Pure recursively defined sets without looping in Haskell
      2 people · 38 points · first shared 2022 · 8 comments on HN
    8. 8
      My contribution to XKCD’s #949
      1 person · 29 points · first shared 2013 · 55 comments on HN
    9. 9
      The Automatic Rule-Based Time Tracker
      1 person · 27 points · first shared 2009 · 4 comments on HN
    10. 10
      The Incredible Proof Machine
      4 people · 19 points · first shared 2015 · Discussion on HN

    What HN people wrote when they linked it

    • danieldkFeb 2015

      Lots of people complain about performance reasoning in Haskell being hard, which is partially true. But mostly, IMO it is simply different from doing so in C, so you need to unlearn/relearn all your performance tweaking skills.

      I don't agree. First, of all, the naive solution in C is often pretty fast, while the naive solution in Haskell often has obnoxious runtime properties.

      Then, most C optimization performance reasoning applies to Haskell as well: keep your data small, in contiguous memory, etc. The first thing that complicates optimization in Haskell is that defacto Haskell data structures are the opposite: pointer/thunk-rich. So, you usually end up with libraries such as 'vector', doing the heavy lifting in the ST monad.

      Then, laziness adds even more complications, both in that it adds a new class of bugs (of course, Haskell removes buffer overflows et al.) which tend to be relatively hard to debug (the heap explodes in less expected places).

      When you write production code, you usually accumulate some monads. Unfortunately, the relatively obvious way to use multiple monads (monad transformers) is slow. So, you have to roll your own monad stacks:

      https://wiki.haskell.org/Performance/Monads

      ---

      In the end, even something as simple as reading a list integers in the IO monad can be an exercise in frustration:

      http://www.joachim-breitner.de/blog/620-Constructing_a_list_in_a_Monad

      The same can't be claimed for C. Even a newcomer could do it.

    • rgoulterFeb 2019

      An even more extreme case of this is trying to bootstrap a compiler from the first version, e.g.:
      http://www.joachim-breitner.de/blog/748-Thoughts_on_bootstrapping_GHC

      """So it seems that besides GHC, only ever HBC was used to compiler GHC.
      HBC is a Haskell compiler where we find the sources of one random version only thanks to archive.org.
      Parts of it are written in C, so I looked into this:
      Compile HBC, use it to compile GHC-0.29,
      and then step for step build every (major) version of GHC until today.

      ....

      [M]ost of [HBC] is written in LML, and the LML compiler is written in LML."""

    • anc84Sep 2016

      Oh yes! At least Kobo readers are Linux and you can SSH in. You could even install another distro I believe. Some ugly hack could be rendering the display content on your machine and just sent the image over.

      https://github.com/koreader/koreader uses Lua so maybe one could add some bidirectional or at least PC->Reader flow of data.

      edit: VNC! https://www.joachim-breitner.de/blog/660-Using_my_Kobo_eBook_reader_as_an_external_eInk_monitor

    • whateveracctNov 2020

      For Haskell, the libgmp stuff is being solved in GHC 9.0

      https://iohk.io/en/blog/posts/2020/07/28/improving-haskells-big-numbers-support/

      It is true that getting static Linux builds is nontrivial - but definitely doable [1]! But the demand is there so I'm guessing the elbow grease will follow in the coming few years :)

      [1] https://www.joachim-breitner.de/blog/776-Distributing_Haskell_programs_in_a_multi-platform_zip_file

    • lrvickNov 2025

      Here is some background on the Haskell situation: https://www.joachim-breitner.de/blog/802-More_thoughts_on_a_bootstrappable_GHC

      Ada has had even less progress and I am not aware of any writeups.

      TL;DR: Ada and Haskell need to have compilers implemented a language that has a full source bootstrap path such as C, Go, or Rust that implement just enough features to compile the official compilers.

    • jackschultzAug 2013

      I believe there was a post about this earlier that the game is solved[1]. Interesting game for those who don't know that, or who want to go through the exercise to figure out the correct strategy.

      [1] https://www.joachim-breitner.de/blog/archives/604-Ultimate-Tic-Tac-Toe-is-always-won-by-X.html

    Related

    Well-Typed Blogwell-typed.com60 people

    Falsify: Hypothesis-Inspired Shrinking for Haskell (2023)

    Well-Typed Blog
    Company · last shared 2026
    Existential Typeexistentialtype.wordpress.com157 people

    Haskell Is Exceptionally Unsafe (2012)

    Existential Type
    Personal · last shared 2026
    FP Complete Blogfpcomplete.com201 people

    Monads and GATs in Nightly Rust

    FP Complete Blog
    Company · last shared 2025
    Jeremy Bowersjerf.org78 people

    Functors and Monads for People Who Have Read Too Many “Tutorials”

    Jeremy Bowers
    Personal · last shared 2026
    Simon Marlowsimonmar.github.io30 people

    Haskell in the Datacentre

    Simon Marlow
    Personal · last shared 2026
    Edward Z. Yangblog.ezyang.com165 people

    PyTorch Internals: Ezyang's Blog

    Edward Z. Yang
    Personal · last shared 2026
    Alex McLeanyaxu.org18 people

    Some music in Haskell

    Alex McLean
    Personal · last shared 2015
    John Wiegleynewartisans.com49 people

    Monads in pictures

    John Wiegley
    Personal · last shared 2026