Neocaml 0.1: Ready for Action
neocaml 0.1 is finally out! Almost a year after I announced the project, I’m happy to report that it has matured to the point where I feel comfortable calling it ready for action. Even better - neo...
neocaml 0.1 is finally out! Almost a year after I announced the project, I’m happy to report that it has matured to the point where I feel comfortable calling it ready for action. Even better - neo...
Most programming languages I’ve used have some form of string interpolation. Ruby has "Hello, #{name}!", Python has f-strings, JavaScript has template literals, even Haskell has a few popular inter...
When I started learning OCaml I kept running into code like this: type person = { name : string; age : int; } [@@deriving show, eq] My first reaction was “what the hell is [@@deriving show,...
If there’s one thing that frustrated me early on in my OCaml journey, it was printing stuff. In Ruby I can p anything and get a useful representation. In Clojure, prn just works on every data struc...
Records are one of those things that look almost identical across ML-family languages, so I didn’t expect many surprises when I started using them in OCaml. For the most part I was right – but ther...
Over the past year I’ve been spending a lot of time building TreeSitter-powered major modes for Emacs – clojure-ts-mode (as co-maintainer), neocaml (from scratch), and asciidoc-mode (also from scra...
A few years ago I wrote about setting up Emacs for OCaml development. Back then the recommended stack was tuareg-mode + merlin-mode, with Merlin providing the bulk of the IDE experience. A lot has ...
Every now and then someone asks me how to learn Vim.1 My answer is always the same: it’s simpler than you think, but it takes longer than you’d like. Here’s my bulletproof 3-step plan. Step 1: Lea...
How to set up auto-saving in Vim, from simple autocommands to plugins, and why you might not need any of it.
Comparing Vim's two main approaches to shell access -- suspending with Ctrl-Z and the built-in terminal emulator.