A language like Haskell pretty much precludes having REPL integration as you can't just run any top level expression without going through the main.
I simply have no idea how anyone would use a REPL to do main development (I never liked the idea anyway). I use it just for early stage testing and debugging assistance, just like I do in Python, Lisp, Prolog... and certainly not Perl - this one has a useless REPL.
What? Why not? I know people who pretty much use the REPL (GHCi) as their primary method of developing in Haskell.
Let's say I'm writing an endpoint to serve some data to the client. I would go to my db namespace, write the function to query the db, run the code and see what it's doing. I'll modify and run it until it does what I want. Then I might go write a controller and do the same thing, and so on.
At each point I have my code running within the context of the app, anything I write in the editor can be evaluated modified, and inspected.
This workflow simply doesn't exist in Haskell last I checked.
I've probably run most of the modules I've written in Haskell on the REPL, normally without importing the main one, because I use it for early-stage testing. I've run DB interfaces, network abstractions, and, of course, lots and lots of pure stuff. Just like you describe doing for Clojure.
Ok, I don't use an IDE that run stuff automatically at the REPL. On Haskell I import the interesting module, and run it. There is at least one IDE that connects with ghci, but I don't like it, and don't know how far it takes debuging (at a minimum, it evaluates your code and tells you the type of anything - I've tried this).