I am using a Haskell/C combo for a distributed (on a "supercomputing" cluster) Machine Learning (commercial, non academic) project. About 20k lines of Haskell. A couple of 100K lines of C (Most of this will be moved to Haskell over time). Works like a charm.
As to why Haskell, I have not yet found any other language that combines its expressiveness and raw speed.
While kind of you to share this datapoint, the fact that there are 5 times more lines of C than Haskell is a bit less than compelling. Especially considering the fact that Haskell can achieve c-like performance (ie: not necessarily a glue language).
Good on you for using it in production though, that's more than most of us have achieved, I'm sure.
"While kind of you to share this datapoint, the fact that there are 5 times more lines of C than Haskell is a bit less than compelling"
Legacy Code (almost 10 - not 5 - times as much C than Haskell). Can't transform it instantly, much as I would like to. (I did explicitly state that most of this is being moved to Haskell).
Why should a pre existing code base preclude the use of Haskell in production and be "not compelling"? I don't get it. But hey if it helps there's even a few thousand lines of Fortran in there (accessed through a C interface). Even less compelling now? ;-)
Fwiw, The 20,000 lines of Haskell would be (at least) equivalent to another 100,000 lines of code in C. So at least 1/3 d of my project is in Haskell. And the ratio is increasing everyday. The OP asked for examples of using Haskell in production. I am using Haskell in production. I didn't see any "purity constraints" in the OP's question. But maybe they were implicit who knows. I am just throwing out what I do with Haskell.
If you find it "less than compelling", that's fine. My clients (the users of the system) are delighted. Good enough for me!