Koka – A function-oriented programming language
research.microsoft.com
research.microsoft.com
The syntactic sugar used here look absolutely beautiful. I really love this, it looks like a saner functional Ruby/JS baby.
Daan Leijen, Koka: Programming with Row Polymorphic Effect Types, in Mathematically Structured Functional Programming 2014, EPTCS, 18 March 2014.
http://research.microsoft.com/apps/pubs/default.aspx?id=2106...Maybe it's not dead yet.
KOKA author is now on this http://2015.ecoop.org/profile/daanleijen
and also tutoring PhD (I assume) students for http://goto.ucsd.edu/~nvazou/koka/icfp15.pdf
Lucas Rytz' PhD research describes an early incarnation. The syntax will be different: side effects will be modeled as implicit evidence. But the semantis will be largely the same I believe.
I seem to remember that the default will be that if no side effects are declared that any side effect is assumed. At least that was the idea in Rytz' PhD thesis. The reason for this was pragmatics: the only effect system in a main stream language is Javas checked exceptions. And for that the communis opinio ended up being that the idea is right but having to declare exceptions in intermediary layers of the call graph was not worth the effort. That's why f.i. Anders Hjelberg left checked exceptions out off C#. So getting the usability right is extremely important for a widely adopted effect system.
Btw there are a lot of publications around 2012 on the topic of effect systems.
If I was going to teach Haskell to someone, I'd be very tempted to start them off by spending a few days noodling around with Koka.
I love that you can even annotate a function to let it read from a variable, but not write to it, or vice versa.