Ask — the rule lives OUTSIDE the account, in every caller
ATM caller
OnlineCheckout caller
The overdraft rule lives in…
2places · can drift
Where's the decision?
Outside the account — each caller reads getBalance(), decides, then setBalance(). Copy it wrong once and the account drifts.
Don't ask for the balance and decide — tell the account to withdraw. Move the rule inside, then trigger an overdraft to see Ask drift and Tell hold firm.