Blog
Making OCaml recursive modules convenient
Jane St posted about recursive OCaml modules from recursive signatures a while ago. module rec Even : sig type t = Zero | Succ of Odd.t end = Even and Odd : sig type t = Succ of Even.t end = Odd You cannot have functions inside recursive modules defined this way which is really
Habu, a language for ergonomic reverse engineering
I'm working on a brand-new language and suite of tools for reverse engineering that I named Habu. I'd like to make my reverse engineering as ergonomic as possible and hope that others will find it useful too! Habu will help with implementing * Processor modules * Emulation * Symbolic
Configuring Jujitsu (jj)
This is my Jujitsu (jj) repo config template. I usually symlink it to .jj/repo/config.toml and check it in. I then jj sync && jj evolve where using git I would git pull --rebase. And jj is lovely... but for having to jj b s master -r
Configuring Helix to auto-format Haskell code
This is how you configure Helix to auto-format Haskell code. Took me a lot of googling and then reading the manual so I hope you find it useful! [[language]] name = "haskell" roots = ["Setup.hs", "stack.yaml", "*.cabal"] formatter = {command = 'fourmolu'
Zig type hacker and memory management
You can map and fold in Zig but lack of closures makes it unergonomic. Here's a completely silly example that shows Zig type hackery as well as memory management. const std = @import("std"); const mem = std.mem; const testing = std.testing; const Allocator = mem.Allocator; pub