Otherwise you end up with Haskell is an OOP language.
Just like being an FP language isn't "like Haskell does it", when I learned FP, Haskell didn't even exist.
Try to express Eiffel, CLOS, SELF or BETA in Java.
By the way, here is One Weekend Raytracing in Rust, perfectly using OOP with dynamic dispatch and interfaces (sorry traits).
Counter example: Html5 DOM.
A graph representation of nodes based on JavaScript object model?
Fine, https://rustwasm.github.io/docs/wasm-bindgen/examples/dom.ht...
It's a brittle simulation of Inheritance. To transform a saying "Just because you can write Ada in C, doesn't make C Ada".
How to prove.
Assume that we add struct inheritance to Rust (it looks similar to JS) - call it RustInh.
Does adding inheritance to Rust increase expressive power? If yes, then right now Rust can't express OOP concept as inheritance. I.e. is there a C[RustInh] = C[Rust].
And way to prove it is to look at Deref anti-patterns https://github.com/rust-unofficial/patterns/blob/main/anti_p...
I'm still not sure that fully captures my intuition of easy to write.
That doesn't even make sense on its face. There are things which are trivially expressible in Smalltalk and I'm not sure even possible to wrangle in Java.