Why I enforce my ledger's invariant twice