I came across [State in Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/state-lasc.pdf) where I believe `ST` was first introduced. Perhaps we should link to that paper in the docs?