Just to be clear, the list is not supposed to be exclusive -- there's a lot of companies using Haskell out there. :)
I just wanted to feature some of the biggest names and some of the cool use cases.
BTW, if you're interested in Haskell case studies, we have a series called Haskell in Production (https://serokell.io/blog/haskell-in-production) with interviews with Haskell projects that covers more ground.
To compare with Learn You a Haskell, I wanted to provide a different option / way of grasping the concept with, hopefully, examples that are relatable to some people more than LYAH. Having a few different explanations of the same thing is not a bad thing in my eyes since different things click with different people.
Regarding Monoid article -- it is sad to hear that since my goal was to provide something that would be unlike the "mathematically-abstract" posts. It has plenty of examples and a rather long exposition, and I am not sure how much more it is possible to improve it without losing any meaning for the word "monoid".
Semigroups and monoids is a rather awkward moment there, I didn't manage to find a perfect way to cover that. But, to be honest, I did mention what a monoid is plenty of times, and I did mention what an identity element is several times as well. So a careful reader should be able to imagine what a semigroup is if necessary.
Anyway, thank you for reading the articles and pointing my attention towards that. I will for sure look at that part again. :)
We at Serokell have just released a collection of FP-themed shirts. If you're into functional programming and type systems, you definitely will find something cool there. My personal favorite is the cat with lambda cube. ^^
There's also a launch promo code that gives you a 22% discount on your purchase: CWP22.
If there's any feedback, would love to hear it. ;)
Just to be clear, I am not a huge fan of forcing paradigms, but I thought that exploring other paradigms is nice, and giving the people to do that while on familiar ground (in Elixir) is also nice.
That's why the article is full of disclaimers of "don't force this on other people in production if they don't want it pls" :)
Thanks for the comment, it's not the first time I read this feedback. Perhaps it was a misplay: I wanted to make the first article as accessible and short as possible so I chose something that already exists in Elixir and tried to point out the fact that this generalizes over what you can do with with in Elixir. But I definitely should have also included stuff that goes further.
Will definitely try to do something more awesome next time, sorry!
It's historically like that in Haskell, and that's how the library defines it. I agree that Result is much clearer, and would love to use it here. But then I would also have to go through how to use Algae to define the type instead of using it out of the box, which would make the article longer.
Similarly with typechecking -- Elixir is dynamically typed, not everyone uses dialyxir, and to bring that whole story inside would also complicate the article.
I plan to continue exploring this space, and perhaps I will slowly understand how to best introduce these ideas to Elixir people correctly, but right now I am just trying to approach it from different kinds of angles. Thank you for the comments. :)