Skip to content
Filip Sieczkowski edited this page Sep 29, 2013 · 4 revisions

Experiments with ML like languages

This bunch of code is the latest effort in my quest to understand how to make SML — or maybe even functional programming languages — even better: more fun to use, more powerful and less complicated at the same time, that kind of jazz.

This attempt consists of two main parts. One, already partially implemented, is to make development of functional programs more interactive, by providing the programmer with all sorts of interesting information, mainly pertaining to types. Here, the core issue is to allow the programmer to write incomplete programs, and refine them while guided by the types. The second main angle is, as usual, the attempt to harness the awesome machinery for large-scale abstraction and composition that is the ML module system to provide an even more intuitive and useful way of working then the original — without, hopefully, paying a huge price in the expressive power. Here the main idea is to explore a different model of sharing type information between structures, and try to harness it to allow automatic inference of implementations, akin to the typeclass system in Haskell, but with the stress on a different kind of flexibility.

In general, this is meant to be more of a playground than some proper programming language; might well end up with different approaches tried out in different branches, but that's the gist of what I'll be trying to do here.

On this wiki, there's a short note on how to build the code, a (possibly outdated) description of a REPL and its command syntax, and a brand new Emacs mode.

Clone this wiki locally