Post Syndicated from daroc original https://lwn.net/Articles/1033050/
Statically typed programming languages can help catch mismatches between the kinds of
values a program is intended to manipulate, and the values it actually manipulates.
While there have been many bytes spent on discussions of whether this is worth
the effort, some programming language designers believe that the type checking
in current languages
does not go far enough.
Koka, an
experimental functional programming language, extends its type system
with an
effect system that tracks the side-effects a program will have in the
course of producing a value.