>>15
With ocaml and revised^5 there's multiple invisible standard libraries inside the standard, one of the worst things a language standard could of done, there is also multiple invisible independent languages for revised^5, not sure about ocaml. For describing where revised^5 is considered harmful with it's standard libraries, let's assume some things about revised^5's model, that it expects a macro system and type system that works on specific theories defined in papers referenced with the lambda papers. The language features for implementing these are a minority of revised^5, it would of been better for those to be as standard libraries, which complete the models for the language. This allows the language to implement it's own models, if an implementer implements the language, they have the complete model without implementing the standard libraries but can further make their own optimised versions quickly for the target later on. This still makes a huge assumption about the parts which are defined in the standard library being perfect for the model, that changing it at all wouldn't make it better or be needed for a certain case. By having a proper language standard, in the case this is wrong it can be solved and the libraries that would break with changes identified easily.
The standard libraries themselves can be bloated for the model. Doing anymore than completing the model and not forking out correctly to limit what needs to be done to complete each part of the model is bloated. If scheme is to be considered a metalanguage, every revised report and the lambda papers are not scheme and scheme does not exist. If the lisp stand point is to be used, read evaluate is the metalanguage and scheme is an language implemented with it, scheme exists as a metaphysical phantom here.
If the language needs extensions as a standard defined extension interface it is broken by design, a read evaluate language allows evaluate to be a hook for writing a macro system without being a real hook. Proper inferred ambiguous type system allows any type to be made and translated for other languages that need types or for optimisations. Run-time is external, anything else is wrong for the language, read evaluate is it's own run-time, it runs externally on it's self not as an extension.