Hacker News new | past | comments | ask | show | jobs | submit login

Here is a paper[1] written by Andreas Rossberg, specification author of Web Assembly, that discusses the defects in the definition of Standard ML. I believe he tried to address many of these issues with Alice ML[2].

[1] https://people.mpi-sws.org/~rossberg/papers/sml-defects-2013...

[2] https://github.com/aliceml/aliceml




I dabbled with AliceML a long time ago and it was fun!

But I think Rossberg has since moved on, and his latest attempt at a "better ML design" should be 1ML[0].

[0] https://github.com/rossberg/1ml


My biggest personal gripe is no nested functors. SML/NJ does support this as an extension but since no other implementation does you effectively can't use it if you want decent performance (that SML/NJ doesn't really give).

I'm also pretty jealous of OCaml's modular implicits, just because it saves you typing the module name before an operator (i.e. MyModule.+ vs just + implied by context).

It also kinda sucks that operator precedence is defined at the module level and cannot be exported. You have to always redefine a library's operator precedence yourself.


> I'm also pretty jealous of OCaml's modular implicits,

Have modular implicits already been implemented? I thought they were still trying to figure out the details of the resolution...


They haven’t been merged. One feature that gives some brevity is type directed constructor disambiguation which allows you to omit the module name when accessing record fields, matching values, or constructing values, provided the type can be inferred in a certain directional way (rather than the more general unification based type inference which is used by the type checker)


Ah, well as with most OCaml planned features I gave up on waiting. Maybe they haven't finished this one.


What ocaml got recently, though, is do notation in the form of "let operators". It's very handy for applicative or monadic style.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: