Destructure anything in rustIn rust, match expressions are really nice, but because containers don’t pass through the properties of the things they contain (except…Feb 5, 2023Feb 5, 2023
Quickie: testing vscode extensionsI made a vscode language server a while back but didn’t have a great way of doing CI tests on it (to prove the artifact itself works). I…Nov 12, 2022Nov 12, 2022
Rust Quickie: random generator patternIn rust, you implement Distribution<SomeType> for Standard (from crate rand) to implement random generation of data structures. Things get…Oct 6, 2022Oct 6, 2022
How to be bad at coq if you know idrisRelating to coq proofs if your frame of reference is idris.Sep 26, 2022Sep 26, 2022
A short note on composition in TLA+I’ve now read Practial TLA+ thoroughly and if you’re going to do _anything_ with TLA+, you should read it. Most of your questions will be…Jun 19, 2022Jun 19, 2022
Fin, Vect and restrict in idrisIt seems like a bit of a trap that restrict yields Fin (S n) for a Vect (S n) but it’s giving a type level protection from trying to access…May 25, 2022May 25, 2022
HasCal — A promising embedding of pluscal in haskell.I’ve been interested in proof systems and proofs for a while. Recently, I took my first tiny step (a very bad example) in TLA+:Apr 17, 2022Apr 17, 2022
Idris: Using the properties of simple constructors for equality and inequalityAmong the first question I asked anyone about idris was about proofs that end in having to prove that two things aren’t equal. Idris itself…Nov 2, 2021Nov 2, 2021
Simple code with ts-elmish: a brass tacks explanationI wanted to make a vs-code extension that others might not simply rewrite or dismiss when seeing the inside of it not written in a…Oct 14, 2021Oct 14, 2021
Type classes in idris: proving away constraints and ensuring totalitySometimes you have disjoint but covering class instances for a type in idris. TLDR: you can use idris’ proof language and the curry-howard…Jun 8, 2021Jun 8, 2021