`$$unwatch` is our private api, we should not mention it.

I think this example is not necessary, I'd rather more formally describe the algorithm as:

1/ given an expression that starts with `::` when a digest loop is entered and expression is dirty-checked store the value as `V`
2/ if `V` is not `undefined` mark the result of the expression as stable and schedule a task to deregister the watch for this expression when we exit the digest loop
3/ process the digest loop as normal
4/ when digest loop is done and all the values have settled process the queue of watch deregistration tasks. for each watch to be deregistered check if it still evaluates to value that is not `undefined`. If that's the case, deregister the watch. Otherwise keep dirty-checking the watch in the future digest loops by following the same algorithm starting from step 1/