Warum verhindern die starken statischen OOP-Sprachen des Mainstreams das Erben von Primitiven?

Warum ist das in Ordnung und wird meistens erwartet: abstract type Shape { abstract number Area(); } concrete type Triangle : Shape { concrete number Area() { //... } } ... obwohl das nicht in Ordnung ist und sich niemand beschwert: concrete type Name : string { } concrete type Index :...