Haskell doesn't need to provide a nice environment for working out why something didn't work—the compiler tends to just tell you precisely why your program isn't working. It's a bit cryptic to learn its language to start, but I seriously executed a 10 module refactoring yesterday by just going in, changing the core code, and then letting the compiler spit out a categorical list of each place that broke and the exact fix needed.
Edit: that said, it still has one. GHCi is a nice Repl.
Have you tried Lisp? I've always found that to be a really friendly environment when it comes to working out why something doesn't work. :)