Welcome to my blog. Here, I write about various subjects, including (but not limited to) functional programming, compiler development, programming language theory, and occasionally video games. I hope you find something useful here!Recent posts:
Generalizing Folds in Haskell
3338 words, about 16 minutes to read.
Have you encountered Haskell’s foldr function? Did you know that you can use it to express any function on a list? . . .
Declaratively Deploying Multiple Blog Versions with NixOS and Flakes
3560 words, about 17 minutes to read.
Prologue You can skip this section if you’d like. For the last few days, I’ve been stuck inside of my room due to some kind of cold or flu, which or may or may not be COVID™. . . .
Digit Sum Patterns and Modular Arithmetic
6083 words, about 29 minutes to read.
When I was in elementary school, our class was briefly visited by our school’s headmaster. He was there for a demonstration, probably intended to get us to practice our multiplication tables. . . .
Introducing Matrix Highlight
1069 words, about 6 minutes to read.
I wanted to briefly introduce a project that I’ve been working on in my spare time over the past couple of months. . . .
A Verified Evaluator for the Untyped Concatenative Calculus
6793 words, about 32 minutes to read.
Earlier, I wrote an article in which I used Coq to encode the formal semantics of Dawn’s Untyped Concatenative Calculus, and to prove a few things about the mini-language. . . .
Formalizing Dawn in Coq
4345 words, about 21 minutes to read.
The Foundations of Dawn article came up on Lobsters recently. In this article, the author of Dawn defines a core calculus for the language, and provides its semantics. . . .
Type-Safe Event Emitter in TypeScript
1067 words, about 6 minutes to read.
I’ve been playing around with TypeScript recently, and enjoying it too. Nearly all of my compile-time type safety desires have been accomodated by the language, and in a rather intuitive and clean way. . . .
Approximating Custom Functions in Hugo
629 words, about 3 minutes to read.
This will be an uncharacteristically short post. Recently, I wrote about my experience with including code from local files. After I wrote that post, I decided to expand upon my setup. . . .
Pleasant Code Includes with Hugo
1822 words, about 9 minutes to read.
Ever since I started the compiler series, I began to include more and more fragments of code into my blog. I didn’t want to be copy-pasting my code between my project and my Markdown files, so I quickly wrote up a Hugo shortcode to pull in other files in the local directory. . . .
Advent of Code in Coq - Day 8
8572 words, about 41 minutes to read.
Huh? We’re on day 8? What happened to days 2 through 7? Well, for the most part, I didn’t think they were that interesting from the Coq point of view. . . .