The MLscript programming language. Functional and object-oriented; structurally typed and sound; with powerful type inference. Soon to have full interop with TypeScript!
This implements the new parsing and type checking of MLscript definitions, moving it further towards a complete and usable general-purpose programming language with support for blended FP/OOP.
It's still a work in progress and several pieces are still missing. For example:
self-type signatures are not yet checked
variance analysis is currently extremely limited and needs to be redone
variance annotations are not checked!
many indirectly-referential methods and other definitions fail to compile when they should, emitting spurious cycle dependency errors
we do not currently allow a definition to refer to a non-top-level type defined in an enclosing scope
the handling of unknown type argument ranges (bounded wildcards) is missing; currently we display to users types that are kind of wrong because they wrongly use internal type ranges
this-matching doesn’t really work due to spurious cyclic typing errors
accessing fields in parent specifications doesn’t really work due to spurious cyclic parent-spec-typing errors
We are also sorely missing user-facing documentation.
This implements the new parsing and type checking of MLscript definitions, moving it further towards a complete and usable general-purpose programming language with support for blended FP/OOP.
It's still a work in progress and several pieces are still missing. For example:
self-type signatures are not yet checkedWe are also sorely missing user-facing documentation.