Sjoerd Visscher
banner
sjoerdvisscher.w3future.com
Sjoerd Visscher
@sjoerdvisscher.w3future.com
#haskell #categorytheory #lumatone
👫 @boekencurator.bsky.social
🏠 https://w3future.com
💼 https://tweag.io
🗣️ https://strijpskamerkoor.nl
Pinned
I'm currently working on the #Haskell library "proarrow", a category theory library, with the purpose of writing programs using string diagrams. My original goal was to generalize my "squares" package to support profunctors in any category instead of just Hask.
GitHub - sjoerdvisscher/proarrow: Haskell library for doing category theory with a central role for profunctors
Haskell library for doing category theory with a central role for profunctors - sjoerdvisscher/proarrow
github.com
Reposted by Sjoerd Visscher
Join us tonight, 2026-01-21 at 1930 UTC, for the first new #Haskell #Unfolder episode of 2026, on static pointers.

www.youtube.com/watch?v=Mc3l...
Static pointers (Haskell Unfolder #53)
"Static pointers" are references to statically known values, and can serialized independent of the type of the value (even if that value is a function), so that you can store them in files, send them ...
www.youtube.com
January 21, 2026 at 12:25 PM
Reposted by Sjoerd Visscher
Reposted by Sjoerd Visscher
#haskell is the most token-efficient statically-typed language: martinalderson.com/posts/which-... (almost on par with #python)
Which programming languages are most token-efficient?
Comparing token efficiency across 19 popular programming languages using RosettaCode data - from Clojure to C, there's a 2.6x difference.
martinalderson.com
January 16, 2026 at 8:38 AM
Reposted by Sjoerd Visscher
I'm quite happy about how this library turned out. I have good hope that it's going to be useful to you. Yes. You.
New year, new blog post. Arnaud Spiwack announces the Pup library. A Haskell library for combinators that do both parsing and pretty printing in a single grammar description. Read and discover the big ideas behind the library's design. www.tweag.io/blog/2026-01...
The quest for grammar combinators: introducing the Pup library
Announcing the Pup library.
www.tweag.io
January 9, 2026 at 7:39 AM
Reposted by Sjoerd Visscher
Every major movement in history was built by people who didn’t fully agree with each other.

If someone’s with you 70–80% of the way, they’re not your enemy, they’re your ally.
January 2, 2026 at 1:23 PM
Reposted by Sjoerd Visscher
Bidirectional typing can be implemented with two functions,

check: term → type → bool
synth: term → maybe type

I like to merge them,

elab: term → maybe type → maybe type

elab x None infers; elab x (Some t) checks. This makes it easy to handle eg let-binding, which can either infer or check.
December 31, 2025 at 6:02 PM
Reposted by Sjoerd Visscher
"The Subtle Footgun of TVar (Map _ _)" by Matt Parsons

www.parsonsmatt.org/2025/12/17/t...

#Haskell
The Subtle Footgun of TVar (Map _ _)
How coarse-grained STM containers can livelock under load
www.parsonsmatt.org
December 18, 2025 at 9:39 PM
Reposted by Sjoerd Visscher
"Neon"
for(float i,d,z;i++<1e2;){vec3 p=z*normalize(r.xyy-FC.rgb*2.)-1.;d=max(p.y,0.);p.y-=d+d;p.z+=t;z+=d=.3*(.1*d+.01+length(vec2(cos(p.z*6.)/6.,1.-dot(cos(p),sin(p).yzx)))/++d/d);o+=(cos(p.z+vec4(0,1,3,0))+1.5)/d/z;}o=tanh(o/8e2);
May 15, 2025 at 4:19 PM
Reposted by Sjoerd Visscher
The State of #Haskell 2025 survey is out! Please take ~10 minutes to fill this out and share it with friends/colleagues/coworkers, whether or not they are users of Haskell.
State of Haskell 2025
Hello everyone! The Haskell Foundation is reviving @taylorfausak’s State of Haskell Survey. It’s been a few years and so we’re doing it a bit differently, but the plan is to start doing this yearly a...
discourse.haskell.org
December 10, 2025 at 8:14 PM
Reposted by Sjoerd Visscher
A fun thing about linear constraint (already true of traditional GHC-style constraint, I think, but more visible with linear constraints). 1/4
December 2, 2025 at 12:44 PM
Reposted by Sjoerd Visscher
This is actually quite brilliant, up to and including the final sentence 🔥
December 1, 2025 at 11:09 AM
Reposted by Sjoerd Visscher
hackage.haskell.org/package/PyF-... PyF has been released with support for GHC 9.14 (rc1, hopefully no update will be required for final version). #haskell #ghc
PyF
Quasiquotations for a python like interpolated string formatter
hackage.haskell.org
December 1, 2025 at 9:01 AM
Reposted by Sjoerd Visscher
An #haskell quiz.

foo :: Monad m => Int -> m Int
foo x = do
undefined
pure x

I do have `res <- foo 10` and `res` is later print. What is the outcome?

a) Exception, non termination, well, something related to "undefined"
b) Eventually it prints 10
c) We cannot know.
November 24, 2025 at 2:49 PM
Reposted by Sjoerd Visscher
Not that anyone asked, but the country with the World's lowest life expectancy (Chad) has a higher life expectancy than the country with the highest life expectancy 120 yrs ago (Sweden).

Think Science and especially Medicine has somehow failed you? Think again.

#ScienceMatters
November 23, 2025 at 8:36 PM
Reposted by Sjoerd Visscher
I'm really glad renewable technology development doesn't depend on the COP negotiations.

Petrostates, fossil fuel companies, and their lackeys can sabotage diplomacy, but it's becoming increasingly transparent what they do is simply evil, while we will ditch fossil fuels anyway.
COP30 BREAKING NEWS: The likely final text of the "global mutirão" has been published, ahead of the closing plenary

Here's the snap analysis from the CB team…see last line

unfccc.int/sites/def...
November 23, 2025 at 12:03 PM
Reposted by Sjoerd Visscher
That countries want to be shielded from vulnerable dependence on e.g. China for their energy is understandable.

But the focus should not be on commodities like raw materials, solar panels, or battery cells, but on the energy management software (EMS) that steers these assets.
🧵
**NEW CHINA SOLAR EXPANSION STORY**

China has doubled the export of solar cells+wafers to assemble abroad in the last several months.

It still exports about the same amount of solar panels.

In October - for the first time - it exported more cell+wafers than panels 🧵
November 21, 2025 at 12:31 PM
Reposted by Sjoerd Visscher
aaaaaaaaaaaaa i just implemented a pretty neat monad transformer for automatically parallelizing concurrent IO
November 10, 2025 at 2:08 PM
Reposted by Sjoerd Visscher
I wrote a new blogpost about what I learnt building this games with a functional language, please let me know if you enjoyed it or learnt something new! 🗾🙌🏻 flaviocorpa.com/japan-prefec...
November 5, 2025 at 2:23 PM
Reposted by Sjoerd Visscher
DISTRIBUTORS
Or:
How
I Learned
To
Stop
Worrying
And
Love
Profunctors

I wrote a Blog Post for programmers about how to use parser combinators to also generate printers, grammars and regular expressions!

github.com/morphismtech...
github.com
September 3, 2025 at 6:06 PM
Reposted by Sjoerd Visscher
Announcing Hindsight, an event sourcing library for #Haskell, designed to bring type safety and correctness to event-driven architectures.

hindsight.events/content/post...
Home - Hindsight
hindsight.events
October 29, 2025 at 11:35 AM
Reposted by Sjoerd Visscher
Laat zien dat jij vandaag kiest voor een gezonde toekomst voor mens, dier en natuur. We zijn harder nodig dan ooit.

Stem met je hart. Het klopt altijd 💚
October 29, 2025 at 6:46 AM
Reposted by Sjoerd Visscher
i'll also write up docs for this so you could build your own customized #haskell playground based on ghc api in the browser with your own packages. it'll take a while, stay tuned!
October 28, 2025 at 11:45 AM
Reposted by Sjoerd Visscher
Mag ik jouw #NerdVote zijn? ☺️
October 27, 2025 at 9:30 AM
Reposted by Sjoerd Visscher
This is not a drill: GHC (the #Haskell compiler) now runs in your browser. See the announcement (and please report any bugs) here: discourse.haskell.org/t/ghc-now-ru...
Ghc now runs in your browser
ghc itself can now run purely client-side in the browser, here’s a haskell playground demo. terms and conditions apply, and i’ll write up more detailed explanation some time later, but i thought this ...
discourse.haskell.org
October 25, 2025 at 7:28 PM
Reposted by Sjoerd Visscher
Don't get too hung up on #Monads, there are other ways to sequence effects; including Arrows; and they provide even better static analysis!

Let me know what you think :)

#Haskell

chrispenner.ca/posts/arrow-...
Exploring Arrows for sequencing effects
Monads are <em>one</em> way to sequence effects, but they're not the only way!
chrispenner.ca
October 21, 2025 at 2:41 AM