Modeling Double-Entry Accounting in Go: Types That Make Invariants Impossible to Violate
A few years ago I shipped a bug that moved money and forgot to take it from anywhere. The code added a credit to one account and, because of a botched early return, never wrote the matching debit. Not
notes.sohag.pro9 min read