Can you give an example of code that behaves differently to what the spec says?
In general `super` is static in the sense of direct field accesses, although when you're executing code in the expressions of those field, self is bound to the original derived object. That is the expected semantics of object orientation and it was tricky to represent it correctly in the semantics.
```
dcunnin@dcunnin:~$ jsonnet -e '{ f: 1, g: 2, x: self.f} + { f: 10, g: 20, x: self.g, y: super.x}'
{
"f": 10,
"g": 20,
"x": 20,
"y": 10
}
```
Hello! For the object merge operator, I believe that there might be an error in the specification. currently, it seems like the spec says that only the fields that have the same name as the super object have super substituted for the LHS object (with the proper modifications for multiple inheritance). However, shouldn't all fields have this substitution performed so that super correctly references the super object? It also seems like the implementation does do this, and this is purely an error in the specification.