Live data from Hacker News

1ML – unifying ML into one language

mpi-sws.org

1–10 of 63 posts

Re: 1ML – unifying ML into one language

#3
post #2

Classic https://xkcd.com/927/

This actually doesn't have to do with that. They "propose a redesign of ML in which modules are truly first-class values, and core and module layer are unified into one language."

They're not trying to, say, unify SML and OCaml, they're trying to solve a problem inherent to ML itself.

Re: 1ML – unifying ML into one language

#9
post #7
post #6

Scala, whose modularisation was strongly influenced by ML, already offers most of what 1ML is trying to do.

Could you justify this assertion? Here[1] is an analysis by Andreas Rossberg that indicates that this isn't the case. [1] http://stackoverflow.com/a/23019436

I was thinking about the statement

   1ML is a user-friendly surface syntax for System Fω 
in the paper's abstract. I think Fω lives inside Scala. But, as the stackexchange article you cite shows, I should have been more careful in my statement.

Re: 1ML – unifying ML into one language

#10
post #2

Classic https://xkcd.com/927/

No. He does not mean unifying separate languages or dialects into one standard.

Rather, the point is that the existing ML language has two parts that are pretty unrelated: the normal value-level language where you write your actual programs, and the module-level language you use for organizing your code and types.

Think of it like the distinction between C proper and the C preprocessor. They're part and parcel of the same language in practical terms, but really they're two completely unrelated languages grafted into one. The ML situation isn't nearly as bad, of course, but the idea is the same: wouldn't it be nice to have one language for both?

There are some ad-hoc efforts to bridge the gap between the two (extensions for first-class modules), but they are not enough. His solution is a language design that starts from first-class modules and, roughly, ensures the module language is just a special application of the base language. It radically simplifies the design and exposes the minimal underlying abstraction which is a typed variant of the λ-calculus called Fω.

Post reply on HN