Robert Atkey wrote:
On Fri, 2009-10-09 at 18:06 +0100, Philippa Cowderoy wrote:

This leads us to the bikeshed topic: what's the concrete syntax?

I implemented a simple Camlp4 syntax extension for Ocaml to do this. I
chose the syntax:

   applicatively
   let x = foo
   let y = bar
   in <pure stuff>

I quite like the word "applicatively".


In an ML context I rather like it! It doesn't really feel haskelly to me though, partly because code that looks like ANF in Haskell is normally in a do block and failing that a single let block instead of a series of nested lets.

Your overloading suggestion sounds to me like it would require the
desugaring process to know something about types, but I'm not sure.


It doesn't the way I've suggested it, whereas doing it perfectly would do because not all Monads are directly Applicatives. I just reckon the imperfection isn't too big a burden applied to new code when you can newtype Monads into Applicatives on demand and get sensible code.

--
fli...@flippac.org
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to