As part of Haskell Summer of Code this year there will be a project to extend CodeWorld with a block-based functional programming language.
The user interface will be akin to the traditional drag-and-drop block based UI, although in a functional environment.
In the end the language should be functional enough (pun) to create CodeWorld applications with it.
Obviously there are a lot of nice additional features that can be included in such a language, such as a proper treatment of abstract data types, which I'll try to get to, if time allows.
I'll be posting about the progress every 2nd week or so.
Any critique and ideas on the project are welcome as well.