Top all-time · #251
Dan Piponi
Personal blog · blog.sigfpe.comprogrammingmathphilosophy
Dan Piponi writes A Neighborhood of Infinity, a personal blog at blog.sigfpe.com about programming, math and philosophy. Since 2009, 186 different Hacker News readers have linked it 241 times, most often “You Could Have Invented Monads (And Maybe You Already Have)”. It is still writing: the last post was on 2026-04-27, and you can follow it by feed.
Sometimes recommended · 12 of 40 sampled comments recommend it?
Why HN links it
HN readers link Piponi's posts to explain monads, the Cont monad and Futamura projections, and recommend the blog to Haskell and maths readers.
- Recommended for · 12 comments
- Called a favourite, a must read for the mathematically inclined, a good read, a better overview of projections.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- You Could Have Invented Monads (And Maybe You Already Have)52 people · 61 mentions · first linked 2009-10-05
- A Neighborhood of Infinity22 people · 25 mentions · first linked 2009-05-03
- From Löb's theorem to spreadsheet evaluation7 people · 7 mentions · first linked 2012-10-15
- Data and Codata (2007)7 people · 7 mentions · first linked 2013-05-06
- /2008/12/mother-of-all-monads.html6 people · 6 mentions · first linked 2013-06-02
- /6 people · 6 mentions · first linked 2010-11-27
- A Neighborhood of Infinity: Quine Central4 people · 4 mentions · first linked 2011-01-31
- Evaluating cellular automata is comonadic (2006)4 people · 4 mentions · first linked 2010-11-03
- Why is nuclear fusion so hard?4 people · 4 mentions · first linked 2018-12-08
- Reasons to use Haskell as a Mathematician (2006)4 people · 4 mentions · first linked 2011-03-06
What Hacker News says?
It's not really comparable, but minimalistic spreadsheet applications always remind me of Dan Piponi's Haskell `loeb` function [0]---a "one-line" "spreadsheet" "implementation". The blog post is very interesting to read, but here's the meat. We're looking for a function with type loeb :: Functor f => f (f a -> a) -> f a and without thinking about the meaning of it, we can implement it as loeb x = fmap (\a -> a (loeb…
Comment linking /2006/11/from-l-theorem-to-spreadsheet.html
on “A spreadsheet in fewer than 30 lines of JavaScript, no library used”Submitted Why is nuclear fusion so hard? as a story · 148 points
HN discussionSee also http://blog.sigfpe.com/2011/01/quine-central.html That post discusses six languages but others can be easily added.
Comment linking /2011/01/quine-central.html
on “Quine Relay”Submitted Reasons to use Haskell as a Mathematician (2006) as a story · 93 points
HN discussionI also found the style in this article kind of annoying and difficult to follow, but I think "discovery fiction" usually means something different. The two examples Michael Nielsen gives are https://michaelnielsen.org/ddi/how-the-bitcoin-protocol-actu... and https://michaelnielsen.org/ddi/why-bloom-filters-work-the-wa... . Another classic example is http://blog.sigfpe.com/2006/08/you-could-have-invented-monad... . Y…
Comment linking /2006/08/you-could-have-invented-monads-and.html
on “What does it mean to listen on a port?”Submitted What is a photon? (2017) as a story · 92 points
HN discussionYou Could Have Invented Monads for the utility of the program syntax+pattern that is a monad http://blog.sigfpe.com/2006/08/you-could-have-invented-monad... Also the original perceptron stuff for why NNs work, but I don't think that has general utility. The tools work irrespective of knowing why they work so I wouldn't recommend that for a SWE.
Comment linking /2006/08/you-could-have-invented-monads-and.html
on “Ask HN: Do you recall any book or course that made a topic finally click?”Submitted A Haskell program that prints out a Perl program that prints out... as a story · 54 points
HN discussionSo would this be one of the Futamura projections http://blog.sigfpe.com/2009/05/three-projections-of-doctor-f... ?
Comment linking /2009/05/three-projections-of-doctor-futamura.html
on “The Baseline Interpreter: A Faster JavaScript Interpreter in Firefox 70”Submitted Haskell - The Trivial Monad (great intro with exercises) as a story · 48 points
HN discussionFor those wondering, it's a specializer, applied to an interpreter, to specialize the interpreter into a jit. This is a pretty well explored technique, it's rarely done these days because historically, people could not get good enough performance. (I am not trying to knock them, just put it in context) For more context on how you'd do something like this, read this: https://en.wikipedia.org/wiki/Partial_evaluation#F…
Comment linking /2009/05/three-projections-of-doctor-futamura.html
on “HolyJit: A New Hope”Submitted Reasons to use Haskell as a Mathematician as a story · 47 points
HN discussionHere's a cool way to reinvert control http://blog.sigfpe.com/2011/10/quick-and-dirty-reinversion-o...
Comment linking /2011/10/quick-and-dirty-reinversion-of-control.html
on “Callbacks as our Generation's Goto Statement”Submitted Lossless decompression and the generation of random samples as a story · 44 points
HN discussionI came across his post about psychological effects of learning category theory[1]. As someone who has just started learning category theory, I am a bit alarmed since I sort of experience these symptoms. Anyone has thoughts about this? [1] http://blog.sigfpe.com/2006/03/category-theory-screws-you-up...
Comment linking /2006/03/category-theory-screws-you-up.html
on “What are the most intellectually stimulating websites you know of?”Submitted You Could Have Invented Monads (And Maybe You Already Have) as a story · 34 points
HN discussionAlso Dan Piponi's blog ( http://blog.sigfpe.com/ ) is pretty good if you're Haskell hacker, but in that case you probably already heard about it.
Comment linking /
on “What are the most intellectually stimulating websites you know of?”Submitted Optimising pointer subtraction with 2-adic integers as a story · 31 points
HN discussionErrors are introduced at constant ratio per line of code that is not syntactically checked by compiler. The ratio is specific to developer and language used. E.g., you can't make a mistake on a line that contains only curly bracket, but you can make (one-off) mistake on line "i += 10;" The more verbose code, the more lines of code that are not syntactically checked. The more errors you introduce during development.…
Comment linking /2009/02/beyond-monads.html
on “I want off Mr. Golang’s Wild Ride (2020)”Submitted Where do monads come from? as a story · 31 points
HN discussion[1] is a nice read regarding continuations (and the Cont monad), though a bit more advanced. [1] http://blog.sigfpe.com/2008/12/mother-of-all-monads.html
Comment linking /2008/12/mother-of-all-monads.html
on “What Color Is Your Function?”Submitted From Löb's theorem to spreadsheet evaluation as a story · 30 points
HN discussionHere are a bunch of blogs from my RSS reader that I think are worth reading. Some of them haven't updated in a while, but the archives may be worth a look anyway. * Blogs with a math focus: http://blog.sigfpe.com http://bit-player.org http://mathr.co.uk/blog/ https://www.johndcook.com/blog/ * Blogs with a programming languages focus: https://existentialtype.wordpress.com https://bluishcoder.co.nz http://blog.ezyang.…
Comment linking /
on “Ask HN: What programming blogs do you follow?”Submitted Data and Codata (2007) as a story · 26 points
HN discussionJust to add more different explanations, since that'll help. http://blog.sigfpe.com/2006/08/you-could-have-invented-monad... This one is my favourite, and does it well by example and walking through three different cases, then generalizing.
Comment linking /2006/08/you-could-have-invented-monads-and.html
on “Async and Await in Rust: a full proposal”Submitted Simulating visual artifacts with Fourier optics as a story · 26 points
HN discussionImage kernels generalize very naturally to real values (so naturally that it hardly constitutes a generalization). CAs can be generalized but it seems less natural. The common element you are picking up on, I think, is [comonadic computation]( http://blog.sigfpe.com/2006/12/evaluating-cellular-automata-... ).
Comment linking /2006/12/evaluating-cellular-automata-is.html
on “Image Kernels explained visually”Submitted Why is nuclear fusion so hard? (2018) as a story · 24 points
HN discussionI was going to comment on that too. Talk about burying the lede! The idea of using an LLM to generate a static program for a specific web site is brilliant. It reminds me of the second Futamura projection. https://en.wikipedia.org/wiki/Partial_evaluation#Futamura_pr... https://blog.sigfpe.com/2009/05/three-projections-of-doctor-...
Comment linking /2009/05/three-projections-of-doctor-futamura.html
on “I posted to HN, and then my website was flooded with AI bot traffic”Submitted Programming with impossible functions, or how to get along without monads. as a story · 12 points
HN discussion