kronosnotebook.com for Dummies
The most crucial challenge is there aren't excellent approaches for Haskell analyzers to communicate with a Java/C++ UI in memory. So you will get clunky+sluggish community/IPC APIs (or even worse, communication by using filesystem) for stuff that must be very small in-procedure approach calls.