I’ve recently been studying capture checking and capabilities in Scala 3. It’s been a little confusing and very fun, and I ended writing many small scale programs in this style.
It was a little frustrating to only ever have what could be (and was) uncharitably described as toy code, and I eventually started writing what feels like a reasonable size project: big and useful enough that it can’t be easily dismissed, but not large enough that it’s intimidating. This series of articles explores the result, and how I went about building it.