It’s essentially a way to give types to “mutable” views into larger data structures.
s - the larger data structure
a - a view value
b - a “update” value
t - the data structure after an update is applied
Of course, everything is still immutable in the same way that cons-ing a value onto a list is immutable.
The change in type between s and t allows you to nest these views, hide information, etc.