Class instance initialisation with defaults
The following two styles of class instance default initialisation breaks all languages

```py
from dataclasses import dataclass


@dataclass
class Rectangle:
    height: int = 0
    length: int = 0


def show():
    assert Rectangle.height == 0

    r = Rectangle()
    assert r.height == 0
    r.height = 1
    assert Rectangle.height == 0
```

```py
class Rectangle:

    def __init__(self, height=0, length=0):
        self.height = height
        self.length = length


def show():
    r = Rectangle()
    assert r.length == 0
    assert r.height == 0
```

For Rust which doesnt have argument defaults, this specific case can be done with trait `Default`, but the larger problem of defaults needs a broader brush, like builder pattern, https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/fkfhwnc/?utm_source=reddit&utm_medium=web2x&context=3 or https://hoverbear.org/blog/optional-arguments/