This doesn't seem quite sufficient, in a generic function if I change `let a = 3;` to `let a = 4;` then the abi changes.