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
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
Reposted by Sjoerd Visscher
Some folks say punk is about standing up for the oppressed & rejecting societal standards. They often say that going vegan is probably the most punk thing you can do with your diet. 🙄 But we stand with @lydonofficial, who prefers taking his tastebuds to flavour town. 🤘🤘
October 14, 2025 at 12:08 PM
Reposted by Sjoerd Visscher
The winners have been announced!

Congratulations to the teams Unagi and MOYOU for a joint first place finish in the ICFP Programming Contest 2025!

icfpcontest2025.github.io/prizes.html
ICFP contest 2025
icfpcontest2025.github.io
October 14, 2025 at 8:41 AM
Reposted by Sjoerd Visscher
Slides for my HOPE 2025 presentation, "Finite Functional Programming via Graded Effects & Relevance Types": www.rntz.net/files/hope-2...
October 13, 2025 at 1:35 AM
Reposted by Sjoerd Visscher
And now Chinese EVs are cheaper in the showroom (and MUCH cheaper to drive) than combustion engines.

Nobody will want to buy combustion engines in 2030, but these knuckle draggers want to lead the EU industry towards total annihilation by sticking their head in the sand.

Bah.
October 10, 2025 at 10:52 AM
Reposted by Sjoerd Visscher
The Mondrian introduction to functional optics. ~ Marco Perone. marcosh.github.io/post/2025/10... #Haskell #FunctionalProgramming
The Mondrian introduction to functional optics
The Mondrian introduction to functional optics
marcosh.github.io
October 7, 2025 at 3:09 PM
Reposted by Sjoerd Visscher
What do folks out there do for error handling in concurrent tasks in #Haskell?

For now I've settled on having an error `TMVar`, then use a `ki` structured concurrency scope which forks all my jobs and ends in an `(Right <$> awaitAll) <|> (Left <$> readTMVar errVar)`
October 6, 2025 at 7:40 PM
Reposted by Sjoerd Visscher
New blog post!

#Haskell is built on a foundation of Monads, but are they really the optimal way to sequence effects or should we keep looking for something better?

What's the big deal with Applicatives and Selective Applicatives?

Read on!

chrispenner.ca/posts/expres...
Monads are too powerful: The Expressiveness Spectrum
Monads are a useful tool, but what costs do we pay for their expressive power?
chrispenner.ca
September 27, 2025 at 4:02 AM
Reposted by Sjoerd Visscher
productivity of co(inductive)-programs
fairness of concurrent scheduling
completeness of search strategies

these three seem deeply related to me, but I can't yet precisely articulate how. Is there existing work on connections between them?
September 27, 2025 at 6:37 AM
Reposted by Sjoerd Visscher
There was a performance bug in recent Ormolu. The fix is terrifying github.com/tweag/ormolu...
Fix performance regression by telser · Pull Request #1177 · tweag/ormolu
A tiny fix, that tested on a closed-source codebase of over 16k modules took formatting inplace from ~10.5 minutes to ~19seconds. This fixes #1176
github.com
September 26, 2025 at 6:38 AM
Reposted by Sjoerd Visscher
Easily create a new project for a new Cabal package in my new IDE for Haskell (and Agda & Swift). Interested in taking it for a spin? DM me your email for a beta test invite! #Haskell
September 23, 2025 at 12:19 PM
Reposted by Sjoerd Visscher
Yay! (It's a live leaderboard, I don't have many more ideas so others will probably catch up) #IcfpContest2025 #haskell
September 5, 2025 at 4:46 PM