Crosscut

Daily Note - 2025-06-25

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

Okay, so protocols can be expressed as generic modules. But you know what, having modules with parameters, doesn't that pretty much sound like functions? Functions that run at compile-time, and can only take arguments that are known at compile-time? Like types or constants.

This is the kind of thing that excites me about programming language design. When it turns out you can express concepts that seem distinct at first using the same basic building blocks, simplifying the system as a whole.

And while I'm not aware of a compiled language that actually does this, the idea of modules being functions is not new either. It was pretty common (at least that's how it seemed to me) to do that in old-school JavaScript, for example, before it grew a dedicated module system.