S
Simon Peyton Jones
simon.peytonjones.org · Personal blog · on HN since 2022
Simon Peyton Jones, a Haskell compiler researcher, hosts his papers, book, and advice on writing research papers and giving talks.
What HN saysHN commenters praise his advice on research papers and talks, and call his book on implementing functional languages one of their favorites.
29HN people shared it
15linked it in comments
14stories submitted
245story points
3 months agolast shared
2022people per year2026
Most-shared posts
- 1Paper on the Core Calculus of the Verse Programming Language [pdf]7 people · 4 points · first shared 2022 · 1 comments on HN
- 2The Epic Verse calculus: a core calculus for functional logic programming6 people · 8 points · first shared 2022 · discussion on HN
- 3Slpj book 19873 people · first shared 2024
- 4The Verse Calculus: A Core Calculus for Functional Logic Programming [pdf]2 people · 53 points · first shared 2023 · 19 comments on HN
- 5Beyond Functional Programming: The Verse Programming Language [pdf]2 people · 3 points · first shared 2022 · 1 comments on HN
- 6Slpj book 1987 2up searchable.pdf2 people · first shared 2024
- 7Build systems a la carte: theory and practice (2020)1 people · 102 points · first shared 2024 · 16 comments on HN
- 8Sequent Calculus as a Compiler Intermediate Language (2016) [pdf]1 people · 68 points · first shared 2024 · 7 comments on HN
- 9Functional Abstract Interpretation1 people · 5 points · first shared 2025 · discussion on HN
- 10Build Systems à La Carte: Theory and Practice [pdf]1 people · 2 points · first shared 2024 · discussion on HN
- 11Great research paper1 people · first shared 2025
- 12Great research talk1 people · first shared 2024
- 13Haskell cloud1 people · first shared 2025
- 14Improving supercompilation1 people · first shared 2026
- 15Writing a proposal mar23.pdf1 people · first shared 2024
What HN people wrote when they linked it
mrkeen · 2025-07-06
It's because it's an SPJ paper
https://simon.peytonjones.org/great-research-paper/
ReleaseCandidat · 2024-07-01
> I think that depends on what you meany by "pattern matching"
Oh, yes, that's true. "Pattern matching" as that what normally is used in "functional programming languages". This kind of pattern matching does not need unification. The IMHO best (correct, but understandable and with all needed definitions) explanation of it is in chapters 4 "STRUCTURED TYPES AND THE SEMANTICS OF PATTERN-MATCHING" and 5 "EFFICIENT COMPILATION OF PATTERN-MATCHING" of Peyton Jones et al., "The implementation of functional programming languages".
https://simon.peytonjones.org/slpj-book-1987/
> In programming cirlces "pattern matching" usually means matching strings.
Depends on the "circle" ;) https://en.wikipedia.org/wiki/Pattern_matching
fooker · 2024-04-22
This is a bit Haskell oriented, but the "Implementation of Functional Programming Languages" by SPJ is one of my all time favorite books.
https://simon.peytonjones.org/slpj-book-1987/
These compilers were pulling heroic data structure optimization stunts in 1985, that no modern production compiler for major compiled languages can replicate in 2024.
ashton314 · 2024-04-14
The best advice I’ve ever seen for technical talks is from the indomitable Simon Peyton-Jones of Haskell IO Monad and C# LINQ fame: https://simon.peytonjones.org/great-research-talk/
He gives a fantastic meta-talk; you should listen to it.
gbacon · 2024-03-29
Thank you. This is beautiful.
Related gems from Simon Peyton Jones are below. In the first, he also advocates telling a story.
https://www.microsoft.com/en-us/research/uploads/prod/2016/07/How-to-w…
https://www.microsoft.com/en-us/research/uploads/prod/2016/07/How-to-g…
https://simon.peytonjones.org/assets/pdfs/writing-a-proposal-mar23.pdf
hackyhacky · 2026-03-24
> they're losing money on vanity projects
Among other vanity projects, they hired Simon Peyton Jones, long the most prominent developer of Haskell, to build "Verse", Tim Sweeney's hobby language [1].
I'm sure SPJ isn't that expensive, but still, it's pretty far from Epic's "core mission."
[1] https://simon.peytonjones.org/verse-calculus/
i_don_t_know · 2026-03-07
Simon Peyton Jones's "The implementation of functional programming languages" has a chapter on the "Efficient compilation of pattern matching" (chapter 5 by Philip Wadler).
https://simon.peytonjones.org/assets/pdfs/slpj-book-1987-2up-searchabl…
throwaway435235 · 2025-10-16
Reminds me of verse calculus [1] for Epic Games' Verse language. In there each expression has zero, one or many results that could be used further.
[1]: https://simon.peytonjones.org/verse-calculus/
throwaway81523 · 2025-07-26
SPJ's book about the same topic is very good.
https://simon.peytonjones.org/slpj-book-1987/
luizfelberti · 2025-02-05
Computation model behind this vaguely reminds me of the Epic Games programming model thing for Verse Calculus: https://simon.peytonjones.org/verse-calculus/
cosmic_quanta · 2025-01-14
> The Misty Programming Language is a dynamic, (...), secure, distributed actor language
In this day-and-age, dynamic programs should be considered insecure (in the broad sense) by design. There have been lots of efforts in the past ~15 years to make distributed systems more robust (e.g. Cloud Haskell [0], choreographic programming [1]).
The term "secure" as used here is quite specific, used in reference to a capability model. This is quite nice and innovative. However, static typing and capabilities need not be mutually exclusive: capabilities can be modeled at the type level using algebraic effects [2].
[0]: https://simon.peytonjones.org/haskell-cloud/
[1]: https://en.wikipedia.org/wiki/Choreographic_programming
[2]: https://github.com/yallop/effects-bibliography
disconcision · 2022-12-12
exact semantics are given here: https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf. runtime efficiency isn't specifically addressed afaict
mncharity · 2022-12-11
The TFA slides live on [1], along with the paper[2].
[1] https://simon.peytonjones.org/verse-calculus/
[2] https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf
thesz · 2026-08-03
> Can you expand on your understanding of GRIN doing parts of supercompilation?
GRIN, if I am not mistaken, performs partial evaluation. For example, it constrains, for each eval site, a set of tags and set of heaps allocations an eval site can receive. This is close to a partial evaluation step of a supercompilation. GRIN does not perform unification, though, it is not described in the original thesis, but data flow graph matching would be close to unification, reducing code size.
> The downsides should be obvious: execution traces rapidly grow massive, compilation resources grow superlinearly, and there are many cases in which the result is worse than the original.
This can be constrained. Supercompilation usually gets ran to a fixed point, where no partial evaluation steps can be performed that are not unifiable with previously encountered evaluation steps. But supercompilation can be stopped at any point.
I believe you can read on that in Simon Peyton-Jones works, I am unable to find a link to that paper right now, I have troubles with the internet connection.
EDIT: here it is: https://simon.peytonjones.org/improving-supercompilation/
EDIT: Note "tag-bags," it rhymes with the tag sets of GRIN.
> What value would Fuse get from equivalence of terms, do you think?
I think that equivalence of terms is an efficient way to verify properties of programs. Myself, I am looking at consensus protocol implementation verification.
duckqlz · 2023-03-30
Coming from the paper on Verse Calculus and having watched Simon Peytonjones’ talk last year I was super excited to try Verse in UEFN last week. Much to my dismay instead of a rich functional language I was met with something that looked like a DSL with python inspired syntax. As I played with the language I couldn’t stop thinking about “choice” and the other feature of verseMax I felt I was missing out on but after making a few toy maps I realized that epic had released a language entirely meant for the public. Reading Verse can be accomplished by anyone who can write a python for loop. The language is VERY accessible.
From the comments below I can see a lot of people are turned away by the idea of FP and this language was clearly meant to address those concerns. The type system is interesting from a high level view but for non-coders I can see how it would make sense.
For instance writing `if var = int` looks perfectly reasonable for someone who has never programmed before and it just works in verse.
So all in all while I was upset on a personal level at what Epic has released, I hope it is a stepping stone to their overall goal of verseMax. Furthermore I am excited at the idea of millions of people (kids) learning functional programming as their first language and think this iteration of verse may just be the perfect gateway drug.
[1] https://m.youtube.com/watch?v=832JF1o7Ck8
[2] https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf
[3]…