I almost got stuck not reading on because I couldn't figure out how to do some exercises but I'm glad I didn't because hindsight shows me that would have been a mistake.
You can get compile time errors instead of runtime for bunch of things.
I also use purescript[2] with purescript-halogen[3] as does slamdata[4]. There's also a video on Purescript halogen[5] that's very interesting.
Purescript is great because the JavaScript it generates is so readable, that if you really need to you can understand the output and make micro-optimizations.
0: https://github.com/ryantrinkle/reflex
1: https://github.com/ryantrinkle/try-reflex
Do you think that Purescript's row typing (as seen in records and the Eff monad/effect system) is a viable replacement for monad transformer stacks? I "get" MT stacks but I find them heavyweight when what is most often desired is commutative set building of capabilities rather than MT-style stacking.
On the other hand, much of React is a natural play out of Haskell's sweet spot. The challenge will be in making Js-alike APIs which handle the flexibility well while maintaining sufficient typing. React-like rendering, virtualdom, data flow... this will all be incredibly naturao.