The two things mentioned in the subject line are both things I've never tried with Haskell. I've seen a lot of papers about these things, but I don't really understand what the current state of play with this is. Are any of these things "production-ready" yet? And how do you use them in the real world?