Brace yourselves for "The Whitespace Thing". This is an OCaml preprocessor that uses your indentation to group expressions, like in Python and Haskell. Effectively, the preprocessor auto-parenthesizes expressions that are split over multiple lines, using your indentation as clues. This eliminates syntax clutter such as multi-line parenthesizations, the sequencing operators ; and ;; , and the keywords done, end, and begin.
I'm especially impressed by the removal of the sequence operator, and how you also use whitespace for multiple-lines applications. Is it really not ambiguous ?
> I'm especially impressed by the removal of the sequence operator, and > how you also use whitespace for multiple-lines applications. > Is it really not ambiguous ?
Yes...the preprocessor uses rules such as: if an indented block follows a let, if, try, etc., it's a sequence -- if it follows an indentifier, then it's an application. This is sound, as far as I can tell. There is a restriction that a multi-line expression has to start on its own line, which lets me get away without actually building a full AST for the source. Ideally that's how it would eventually work, but...80/20.