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
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
Reposted by Sjoerd Visscher
There's no functor like Hom
September 2, 2025 at 10:14 AM
Reposted by Sjoerd Visscher
The GHC developers are very pleased to announce the availability of the first alpha prerelease of GHC 9.14.1.

Highlights:

* Major improvements to the Specialiser
* SSE/AVX support in the x86 native backend
* Significant improvements in the GHCi debugger

blog.haskell.org/ghc-9-14-1-a...

#Haskell
GHC 9.14.1-alpha1 is now available | The Haskell Programming Language's blog
blog.haskell.org
August 20, 2025 at 6:10 AM
Reposted by Sjoerd Visscher
I wrote up a post on how to infer the type of plain data with One Simple Trick ™️

www.haskellforall.com/2025/08/type...
Type inference for plain data
Type inference for plain data using Monoids The context behind this post is that my partner asked me how to ...
www.haskellforall.com
August 13, 2025 at 3:57 PM
Reposted by Sjoerd Visscher
Is the non-#haskell part of the world aware STM exists?

I see a few languages have somewhat broken implementations...

#STM is truly a revolutionary tool for any kind of async/concurrent/parallel programming and new languages would do well to ensure they can implement it well!
August 15, 2025 at 1:05 AM