this year my challenge for #AdventOfCode is to implement my own (statically typed) language and solve every task with it, adding features to the language as I go. basic implementation and first day are ready!
https://codeberg.org/goldstein/aoc2025
I kinda cheated by implementing System F typechecking a couple of days before the challenge starts, but this still means I had to implement parsing + ADTs and basic pattern matching + let-in + primitive types + builtins + typing for all that stuff + de Bruijn indexing + evaluation in the first day, which is the primary downside of this challenge. System F typing was mostly mechanical anyway, I was just following a paper (Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism by Dunfield and Krishnaswami).
I spent last month preparing for this (reading TAPL and various papers, thinking about language design), so I’m pretty excited to actually attempt it.