I mean compare to using arrow functions and it's almost identical
let decrement = () => set_value.update((value) => value -1);
The difference is that Rust isn't garbage collected and has reference value semantics, which is where the *value -= 1 comes in.