Always when I see haskell demonstrations eveyrthing looks like just interface declarations.
You can do beautiful interfaces with eg. java also. But where is the meat where anything actually happens? I rarely see that in these posts. Yes I could look up the source but I don't have time to read through it randomly.
This looks just so nice and stuff just magically works?:
runWorkerLoop :: (MonadBackingStore m, MonadLogger m, MonadIO m) => WorkerState -> m WorkerState
And monads to boot! (are monads haskells equivalent of java factories? I kid, I kid :)