Crosscut

Daily Thought - 2025-04-22

Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!

Right now, I'm looking at two options, each of which could be used both for error handling and for tracking side effects: One are monads, the other one algebraic effects.

I've been talking about innovation tokens recently. I only have so much bandwidth, and too much innovation could also harm adoption. But I actually think that in this case, both options are a somewhat safe bet. While algebraic effects are much newer, they seem pretty established by now, in languages like Koka, Unison, and OCaml.

And at this point, I definitely prefer algebraic effects. They enable a much more lightweight syntax that is also familiar to those that are not used to functional programming. And they are more powerful, enabling features like async/await without dedicated language support.

Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email every time I post a new one.