Which monads haskell developers use: An exploratory study

Today, this paper popped up in my RSS feed (using gscholar-rss): Which monads haskell developers use: An exploratory study (pdf), by Ismael Figueroaa, Paul Legerb and Hiroaki Fukuda.

I will paste two interesting figure here. First packages per quantity of monads and packages that import a specific monad (mtl universe):

and the second, a graph of the most populat combinations:

f2
If you are interested, the full research questions are:

  1. How many packages directly depend on the mtl library? What is their
    distribution with respect to package metadata, such as names, versions, stability
    or categories?
  2. What monads, or notions of computation, defined in the mtl library are
    the most popular?
  3. How popular are alternative implementations to the mtl library?
14 Likes

Hello @f-a, I am one of the authors (Paul Leger). If you have any more questions, let me know!

Thanks!

7 Likes

Thanks @f-a for highlighting our paper!

6 Likes

this paper is quite alarming, the fourth most used monad is Error and it was removed in the latest version of mtl, State sounds useful but things get absurdly complex when we involve multiple threads and exceptions, Writer is rife with issues and the strict version always leaks space. of the ok Monads only Reader is widely used and Cont, Except and Identity are niche.
hackage is append only what happens if we ignore abandoned packages or older ones and only consider relatively recent packages?

1 Like

Note that the paper is from 4 years ago (2020) and they only considered packages from 6 years ago:

In this work we consider all the packages in Hackage that were available in January 2018.

But indeed Error was already deprecated in 2014.

1 Like