maybe add here helper what to do:
```
  - *o* is a Array, Hash, {Yast::Term}. Usually it can be nil, so handle such case, recommended is to raise exception as it is serious problem that should not be part of work-flow.
 - *i* is a non-nil scalar or array containing keys or indexes, with possible non-existing last one. Recommended is to let raise exception. and for nil key if it is not wanted, check it and raise exception before assignment.
 - *v* does not need {deep_copy}. If it need it, then simply call it on value like `o[i] = deep_copy v`
```