Sign in

Sjoerd Visscher

@sjoerdvisscher.w3future.com
221 followers 219 following 210 posts

#haskell #categorytheory #lumatone 👫 @boekencurator.bsky.social 🏠 w3future.com 💼 tweag.io 🗣️ strijpskamerkoor.nl

PostsRepliesMedia
Sjoerd Visscher @sjoerdvisscher.w3future.com · 28/09/2026
proarrow-0.1.0.0 is now live on hackage! hackage-content.haskell.org/package/proa... #haskell #categorytheory
hackage-content.haskell.org
proarrow
Category theory with a central role for profunctors
040
Reposted by Sjoerd Visscher
Sjoerd Visscher @sjoerdvisscher.w3future.com · 26/09/2026
If you have laws-as-code and you have code-as-diagrams, you get (you guessed it) laws-as-diagrams for free! github.com/sjoerdvissch...
The 6 laws of a traced monoidal category, rendered as diagrams.
041
Sjoerd Visscher @sjoerdvisscher.w3future.com · 26/09/2026
If you have laws-as-code and you have code-as-diagrams, you get (you guessed it) laws-as-diagrams for free! github.com/sjoerdvissch...
The 6 laws of a traced monoidal category, rendered as diagrams.
041
Reposted by Sjoerd Visscher
terrorjack.bsky.social @terrorjack.bsky.social · 19/09/2026
playground.terrorjack.workers.dev weekend toy project: haskell playground based on ghc-10.0, with multi-file editor, ghci repl and haskell language server; transitive deps of hls like aeson are also included. note that this is a vibe coded poc, if you have allergies to this kind of thing
playground.terrorjack.workers.dev
Haskell playground
232
Reposted by Sjoerd Visscher
Thomas Marsh @thomasmarsh.bsky.social · 14/09/2026
Apologies for the AI use, but I wanted to explore this in Oleg's visual style. Probably a lot of errors - I know spent too much time trying to get this even to this point. Script to generate it: gist.github.com/thomasmarsh/...
111
Sjoerd Visscher @sjoerdvisscher.w3future.com · 12/09/2026
This is getting complicated! #haskell #categorytheory
A diagram of optics
130
Reposted by Sjoerd Visscher
Arnaud Spiwack @aspiwack.bsky.social · 09/09/2026
That is, for any object A, we have an arrow α_A : F A -> G A, such that for all R∈Rel(A,B), F(R) ⊆ G(R(α,α)) If F is a functor, parametric arrows should be natural, for instance. This should give us an algebraic framework to talk about what we've been doing in PLT. 6/7
101
Sjoerd Visscher @sjoerdvisscher.w3future.com · 07/09/2026
New optics just dropped! #haskell #category-theory
Optics diagram, showing:

-- >   Iso                <:  Lens, MonoidalLens, Prism, Kaleidoscope
-- >   Lens               <:  Getter, AffineTraversal
-- >   MonoidalLens       <:  Getter, MonoidalTraversal
-- >   Prism              <:  Review, AffineTraversal, MonoidalTraversal
-- >   Kaleidoscope       <:  MonoidalTraversal, Grate
-- >   Grate              <:  Setter
-- >   Getter             <:  AffineFold
-- >   AffineTraversal    <:  AffineFold, Traversal
-- >   MonoidalTraversal  <:  Traversal
-- >   AffineFold         <:  Fold
-- >   Traversal          <:  Fold, Setter
350
Sjoerd Visscher @sjoerdvisscher.w3future.com · 27/08/2026
I’ve been working on proarrow for 3 years and only now I find out that all adjunctions between profunctors are trivial, as in they are always adjunctions between the two representables induced by a functor. At least it’s true for Hask enriched profunctors. Something to do with Cauchy completeness.
020
Reposted by Sjoerd Visscher
Haskell Interlude @haskellinterlude.bsky.social · 26/08/2026
In today’s episode, we’re joined by Brent Yorgey, Associate Professor of CS at Hendrix College and the creator of the Diagrams vector graphics library and Swarm, a 2D programming and resource gathering game. We talk about teaching, DSLs, and competitive coding. haskell.foundation/podcast/85/
haskell.foundation
Brent Yorgey
In today's episode, we're joined by Brent Yorgey, Associate Professor of Computer Science at Hendrix College and the creator, among other things, of the Diagrams vector graphics library and Swarm, a 2...
096
Sjoerd Visscher @sjoerdvisscher.w3future.com · 20/08/2026
Dutch has this word "al", which frequently starts a sentence, and then it looks like "Al", indistinguishable from "AI" in most fonts, really annoying!
210
Reposted by Sjoerd Visscher
Conor Sheridan @qucat.bsky.social · 19/08/2026
Cool observation: one can build a bicategory whose objects are free word monoids over alphabets and whose morphisms are Turing transducers. A Turing machine then appears as a specialization of a guarded trace between a Moore machine (tape) and a Mealy machine (controller).
001
Reposted by Sjoerd Visscher
Conor Sheridan @qucat.bsky.social · 14/08/2026
Looking for non-trivial examples of virtual double categories arising in TCS or logic, ideally many-object examples where the virtuality has a concrete computational/logical meaning.
011
Sjoerd Visscher @sjoerdvisscher.w3future.com · 11/08/2026
Using AI to write your code is like hiring a consultant to write your code, but continuously hiring a different one. No matter how good you set it up, documenting everything etc., over time the result is terrible.
111
Reposted by Sjoerd Visscher
Zanzi Tangle @zanzi.bsky.social · 06/08/2026
after two years of development, I finally demoed Jermaine for the first time - a language with fully symmetric data and codata, and native call-cc.
5447
Sjoerd Visscher @sjoerdvisscher.w3future.com · 06/08/2026
I never thought the proarrow library would grow this big. I expected to hit a major roadblock at some point but that just didn't happen. sjoerdvisscher.github.io/proarrow/ #haskell
The contents of the proarrow library listing its 137 modules.
160
Reposted by Sjoerd Visscher
Arnaud Spiwack @aspiwack.bsky.social · 28/07/2026
I want to explain what's going on here. Because it's quite interesting. The type of monads over the category of presheaves is given by class PMonad f where return :: p i -> f i (>>=) :: f p i -> (forall j. p j -> f q j) -> f q i (just follow the textbooks) 1/11
175
Sjoerd Visscher @sjoerdvisscher.w3future.com · 24/07/2026
What an amazing hack! This is a trick that works for any category, reifying any morphisms you have available into dictionaries, and then letting the compiler compose them together automatically to get the right morphism you need! #haskell
131
Sjoerd Visscher @sjoerdvisscher.w3future.com · 14/07/2026
I have an elasticube wooden puzzle at home, and yesterday I saw a version in a museumshop with balls instead of cubes. This allows for different shapes to be made, but the smooth surface of the balls caused the shapes to lack stiffness.
ochafik.com
OpenSCAD Playground
OpenSCAD Playground: edit .scad models and render them to STL from the browser (WebAssembly build OpenSCAD, with Monaco editor and STL Viewer)
110
Reposted by Sjoerd Visscher
ICFP Programming Contest 2026 @icfpcontest.bsky.social · 11/07/2026
Pre-registration for this year's ICFP programming contest is open! You may register your team at your leisure at icfpcontest2026.com/signup The contest begins on July 24th - just under two weeks to go!
icfpcontest2026.com
Register — ICFP Programming Contest 2026
053
Sjoerd Visscher @sjoerdvisscher.w3future.com · 10/07/2026
Are you also annoyed that the Bluesky Haskell feed is full of hurricane warnings for the town of Haskell? I just found this alternative feed: bsky.app/profile/did:...
031
Reposted by Sjoerd Visscher
gabby @fullmoon.id · 07/07/2026
I spelled out a complete type inference algorithm for one of the trickiest corners of Nix to typecheck: the biased record concatenation operator ("//") The post even includes a reference implementation in ≈400 lines of Haskell code haskellforall.com/2026/07/mech...
haskellforall.com
Mechanized type inference for record concatenation
Type inference algorithm for biased record concatenation
1335
Reposted by Sjoerd Visscher
José A. Alonso @jalonso.eurosky.social · 02/07/2026
Haskell koan: Type-checked non-empty strings. ~ Mike Ledger. exploring-better-ways.bellroy.com/haskell-koan... #Haskell #FunctionalProgramming
021
Reposted by Sjoerd Visscher
Jaap Rademaker @dgrademaker.bsky.social · 29/06/2026
‘De wereld voedt ons, en dan vooral ons vee’
30650341
Reposted by Sjoerd Visscher
Kris Jenkins @krisajenkins.bsky.social · 26/06/2026
For some Friday afternoon fun, allow me to hijack your productivity with this game: Escape the Moon! It started as a side project to kick the tyres on #SpacetimeDB, but snowballed into a whole cards-and-crafting web game. Hope you enjoy. Let me know if you do. 🙂 escapethemoon.vercel.app
escapethemoon.vercel.app
Escape the Moon
Crash-land, gather, refine and fabricate your way off a dead moon. The only way off this rock is the one you build.
283
Reposted by Sjoerd Visscher
Bert Hubert 🇺🇦🇪🇺🇺🇦 @berthubert.bsky.social · 25/06/2026
There is a European-owned place called Aisle that is doing world class security bug finding. Beating Mythos even. But no one in Europe likes talking up our own talent. Been trying to get them mentioned in Dutch news, but all we can do apparently is promote US tech. aisle.com/blog/aisle-d...
aisle.com
AISLE Discovers 6 CVEs in curl, Including Oldest Issue Ever
AISLE's analyzer discovered 6 new CVEs in curl, more than 2x the nearest AI security platform and including the oldest security issue in the project.
35436
Sjoerd Visscher @sjoerdvisscher.w3future.com · 23/06/2026
Is de hittekracht-schaal nu al weer toe aan een update? www.hittekracht.net/verwachting @knmi.nl @helgavanleur.bsky.social
Hittekracht verwachting voor de komende week, vandaag 8, dan 5 dagen 10 (!!) en maandag weer 7.
100
Reposted by Sjoerd Visscher
Michael Chavinda @mschav.bsky.social · 22/06/2026
Before we solve data workflows in Haskell we have to teach people Haskell. sabela.datahaskell.com/c/1ea40000
sabela.datahaskell.com
Learn You a Haskell for Great Good!
Curated reactive Haskell notebooks.
0184
Reposted by Sjoerd Visscher
Haskell programming language @haskell.org · 19/06/2026
Haskell ecosystem activities report: March–May 2026 www.well-typed.com/blog/2026/06... #Haskell
well-typed.com
Haskell ecosystem activities report: March–May 2026
Read about the latest Haskell development and maintenance activity from Well-Typed in this report on work funded by Haskell Ecosystem Support Packages.
0113
Reposted by Sjoerd Visscher
ICFP Conference @icfp-conference.bsky.social · 16/06/2026
Mark your calendars! 🗓️ This year's iteration of the annual ICFP programming contest will take place from ** July 24 to July 27 ** Stay tuned for more info...! icfpcontest2026.com
icfpcontest2026.com
ICFP Programming Contest 2026
The 29th ICFP Programming Contest runs July 24–27, 2026. An online programming competition for teams of any size, anywhere.
124
Reposted by Sjoerd Visscher
Flavio 🏴‍☠️ @flaviocorpa.com · 12/06/2026
Latest and maybe last (?) blogpost on my Haskell for @elmlang developers series: IO! 🚀 (This was cooked at @ZuriHac btw ☺️) flaviocorpa.com/haskell-for-...
flaviocorpa.com
Haskell for Elm developers: giving names to stuff (Part 8 - IO)
A series of blog posts for explaining Haskell to Elm developers interested in learning the language that powers the compiler for their favourite language!
093
Reposted by Sjoerd Visscher
ICFP Programming Contest 2026 @icfpcontest.bsky.social · 10/06/2026
The ICFP 2026 Programming Contest will run from July 24th to July 27th. We'll get icfpcontest2026.com updated with more information on the contest in the coming weeks :)
icfpcontest2026.com
ICFP Programming Contest 2026
The 29th ICFP Programming Contest runs July 24–27, 2026. An online programming competition for teams of any size, anywhere.
0159
Reposted by Sjoerd Visscher
Topper @topperuk.bsky.social · 05/06/2026
Fact: When abroad, James Bond is known as +44 07.
07820
Reposted by Sjoerd Visscher
Haskell programming language @haskell.org · 02/06/2026
The past years have seen horrendous attacks towards trans people. We have a duty to protect the most vulnerable members of our communities. There is no Haskell without the trans people who have shaped it through the years. This June is a month of celebrations, but the struggle continues. ✊🏳️‍⚧️λ
The trans flag with a greek lowecase lambda letter in black on it.
151101284
Reposted by Sjoerd Visscher
Haskell programming language @haskell.org · 01/06/2026
Serokell’s Work on GHC: Dependent Types, Part 5 serokell.io/blog/serokel... #Haskell #DependentTyples
serokell.io
Serokell’s Work on GHC: Dependent Types, Part 5
This article continues the fine tradition of Serokell's GHC team sharing their progress on bringing dependent types to Haskell. A lot has happened since the last report, and there is plenty to cover. ...
0176
Reposted by Sjoerd Visscher
Ian Duncan @iankduncan.com · 30/05/2026
“why is there a Ribosome.hs in the reliability codebase” do not worry about it. it batches www.iankduncan.com/engineering/...
iankduncan.com
Stealing from Biologists to Compile Haskell Faster - Ian Duncan
The trick that makes GHC’s ApplicativeDo optimization faster is structurally identical to how biologists predict RNA folding.
1419
Reposted by Sjoerd Visscher
Manuel Chakravarty @tacticalgrace.justtesting.org · 28/05/2026
Check out the new blog!
077
Reposted by Sjoerd Visscher
Juan Raphael Diaz Simões @guaraqe.com · 24/05/2026
I’ll be at ZuriHac soon, so I’m excited to share WireCat: a Haskell effect library and GHC plugin for faithful visual representations of executable code, based on cartesian categories, row types and proc notation. I wrote about why cartesian categories are convenient: guaraqe.com/posts/2026-0...
guaraqe.com
WireCat: visual programming with cartesian categories
Introducing WireCat, a GHC plugin for writing typed categorical wiring diagrams with proc notation
1123
Sjoerd Visscher @sjoerdvisscher.w3future.com · 22/05/2026
Isn't it amazing that these are all different representations of the same thing, each useful in its own way?
(s -> a, s -> b -> t)
forall f. Functor f => (a -> f b) -> s -> f t       
forall p. Strong p => p a b -> p s t
exist m. (s -> (m, a), (m, b) -> t)
forall y. (s, t -> y) -> (a, b -> y)
062
Reposted by Sjoerd Visscher
Bartosz Milewski @bartoszmilewski.bsky.social · 16/05/2026
New blog post in the series on profunctor equipment bartoszmilewski.com/2026/05/16/p...
bartoszmilewski.com
Profunctor Equipment in Haskell
Previously: Profunctor Equipment. To make things more palatable for programmers, I decided to provide a toy implementation of some of the equipments in Haskell. The advantage of this encoding is th…
0113
Reposted by Sjoerd Visscher
Oisín Kidney @doisinkidney.com · 28/04/2026
Tries for Polynomials doisinkidney.com/posts/2026-0...
doisinkidney.com
Tries for Polynomials - Donnacha Oisín Kidney
094
Sjoerd Visscher @sjoerdvisscher.w3future.com · 28/04/2026
I've added the cospan category to the proarrow library. I thought it wouldn't be possible to implement it, since the composition of cospans requires pushouts. And pushouts are an inherently dependently typed concept, since the pushout object (type) depends on arrows (values).
220
Reposted by Sjoerd Visscher
Arnaud Spiwack @aspiwack.bsky.social · 27/04/2026
People on the internet (👋 @bartoszmilewski.bsky.social, @sjoerdvisscher.w3future.com) made my mind drift toward proarrow equipments today. I never really paid attention before. It's a quite minimalistic, but natural setting. 1/5
122
Reposted by Sjoerd Visscher
Bartosz Milewski @bartoszmilewski.bsky.social · 24/04/2026
I decided to popularize double categories using profunctor equipment as a model. bartoszmilewski.com/2026/04/24/p...
bartoszmilewski.com
Profunctor Equipment
The fundamental premise of category theory is that it’s possible to fully capture the nature of objects by describing their interactions with other objects of the same type. Those interaction…
084
Reposted by Sjoerd Visscher
Jonathan Carroll @jonocarroll.fosstodon.org.ap.brid.gy · 22/04/2026
@mchav has an excellent post about the DataHaskell approach to data processing in #haskell, inspired by the 'pandas vs R' post from a couple of years ago. Fantastic to see how these languages approach the same problem with different trade-offs mchav.github.io/being-less-clunky
mchav.github.io
Pandas feels clunky coming from R. What about Haskell?
Some years ago I came across an issue in the Frames repo that mentioned a blog post titled “Why pandas feels clunky when coming from R.” The article showed a side-by-side of simple data exploration in R and compared the code to Pandas. At the time, the author concluded that Pandas was “clunkier” than R. The author operationalises the definition of clunkiness but I think it’s really more of a you-know-it-when-you-see-it thing. You can feel if an API is making you drift further away from your task and making you think more about the tool and its idiosyncracies.
062
Reposted by Sjoerd Visscher
Andres Löh @kosmikus.bsky.social · 21/04/2026
After a somewhat longer break, we're finally back with a new #Haskell #Unfolder episode. Tomorrow, 2026-04-22, at 18:30 UTC, Edsko and I will talk about selective applicative functors. www.youtube.com/watch?v=Yt2E...
youtube.com
Not quite monads (Haskell Unfolder #54)
YouTube video by Well-Typed
2125
Reposted by Sjoerd Visscher
vaibhav sagar @vaibhavsagar.com · 22/04/2026
Compiler goes to programmer. "Programmer, I am in rough shape. Mutable references abound and the tiniest changes break API compatibility." Programmer replies, "The treatment is simple! Rewrite in Haskell and GHC will sort you right out." Compiler bursts into tears: "But I am GHC!"
012720
Reposted by Sjoerd Visscher
Arnaud Spiwack @aspiwack.bsky.social · 15/04/2026
Another thought on PHOAS, it's always been disturbing to me that while `forall v. Term v` only has terms, a `Term V` for a concrete `V` can have exotic terms. It struck me as too easy to misuse. But in the representation I had to use I don't have this problem. 1/3
111
Reposted by Sjoerd Visscher
Arnaud Spiwack @aspiwack.bsky.social · 06/04/2026
So. I did a thing. This was actually quite a lot of work, so I'm quite proud of this one. I wrote a tiny example of a sheaf interpreter (in Haskell). github.com/aspiwack/she... 1/8
github.com
GitHub - aspiwack/sheaf-lang-demo: An experiment to see what interpretation into (pre)sheaves categories look like
An experiment to see what interpretation into (pre)sheaves categories look like - aspiwack/sheaf-lang-demo
2135
Reposted by Sjoerd Visscher
Haskell programming language @haskell.org · 01/04/2026
Question 77 of the State of Haskell Survey 2025 “If you could change one thing about Haskell, what would it be?” received 553 answers. Our brave volunteers Sawa & Hécate teamed up to analyse the survey results. You can read the report at blog.haskell.org/what-would-y... #Haskell
blog.haskell.org
What Would You See Changed in Haskell? | The Haskell Programming Language's blog
We received 553 answers to the question “If you could change one thing about Haskell, what would it be?”. This is the breakdown.
1101