path: root/site/opinions/
diff options
authorThomas Letan <>2021-03-28 00:03:41 +0100
committerThomas Letan <>2021-03-28 14:19:29 +0200
commit495f9db0606b0ed09e6fac59dc32de4cdc8c0087 (patch)
tree82ea5c5e247c664de247a0f3818f393ffdb00067 /site/opinions/
parent1a197fb354a82a31deca4f9b118f057bbd0038b6 (diff)
2021 Spring redesign
Diffstat (limited to 'site/opinions/')
1 files changed, 6 insertions, 7 deletions
diff --git a/site/opinions/ b/site/opinions/
index 7296f08..0424c7b 100644
--- a/site/opinions/
+++ b/site/opinions/
@@ -1,12 +1,12 @@
-<h1>Monad Transformers are a Great Abstraction</h1>
+#+TITLE: Monad Transformers are a Great Abstraction
+#+SERIES: ../opinions/index.html
<p>This article has originally been published on <span
id="original-created-at">July 15, 2017</span>.</p>
-#+OPTIONS: toc:nil
<div id="history">site/opinions/</div>
@@ -14,8 +14,8 @@ id="original-created-at">July 15, 2017</span>.</p>
Monads are hard to get right. I think it took me around a year of Haskelling to
feel like I understood them. The reason is, to my opinion, there is not such
thing as /the/ Monad. It is even the contrary. When someone asks me how I would
-define Monads in only a few words, [[][I say Monad is a convenient formalism to
-chain specific computations]]. Once I’ve got that, I started noticing “monadic
+define Monads in only a few words, I say monads are a convenient formalism to
+chain specific computations. Once I’ve got that, I started noticing “monadic
construction” everywhere, from the Rust ~?~ operator to the [[][Elixir ~with~
@@ -46,7 +46,6 @@ issue with the Monad Transformers.
#+BEGIN_SRC diff
-type Builder = StateT Text IO
+type Builder = StateT Text (ReaderT Language IO)
As you may have already understood, I wasn't using the “raw” ~State~ Monad, but