When setting the value of a path in a context that points to a member of a struct, the context isn't changed. The reason is that the returned struct value is immutable and changing one of its members doesn't change the value in the context.
A solution would be to follow the path as long as the current value is not immutable. If it is, the complete value has to be fetched, adjusted at the rest of the path and be set. So the context has to realize when a struct node is passed and react accordingly.