Crosscut

Daily Thought - 2025-03-01

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!

At this point, I was going to start presenting the approach to data types that I've come up with, which I think comes closer to the ideal of being simple, orthogonal, and composable than what Rust currently has. As I've been working on my drafts, however, I realized that we're missing some more background to tie some of it together: modules.

My ideas on how modules should work are still somewhat vague, which is I why I wasn't planning to go into them right now. But let's do a quick dip, just enough to move on with data types.

So, what's a module? It is something that exists statically, meaning it is known to the compiler. It has inputs (other modules it depends on), and it has outputs (types, functions, and other items that it exports). That sounds pretty much like a function to me. A function that is executed at compile time!

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.