From d100dce8a815629b38e969a18bc772c768d025ef Mon Sep 17 00:00:00 2001 From: Cody Allen Date: Mon, 1 Oct 2018 08:00:45 -0700 Subject: [PATCH] Add FAQ for monad transformer variance Resolves #2538. --- docs/src/main/tut/faq.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/src/main/tut/faq.md b/docs/src/main/tut/faq.md index 9089b67d80..2c3dc264d9 100644 --- a/docs/src/main/tut/faq.md +++ b/docs/src/main/tut/faq.md @@ -26,6 +26,7 @@ position: 40 * [How can I test instances against their type classes' laws?](#law-testing) * [How can I help?](#contributing) * [Is there a sbt plugin that facilitate projects based on the Cats ecosystem libraries?](#sbt-catalysts) + * [Why aren't monad transformers like `OptionT` and `EitherT` covariant like `Option` and `Either`?](#monad-transformer-variance) * [How to try cats in a REPL?](#ammonite) ## What imports do I need? @@ -272,4 +273,6 @@ import $ivy.`org.typelevel::cats-core:1.0.1`, cats.implicits._ ``` Or if you want, you can add these lines to `~/.ammonite/predef.sc` so that they are enabled every ammonite session. +## Why aren't monad transformers like `OptionT` and `EitherT` covariant like `Option` and `Either`? +Please see [Variance of Monad Transformers](https://typelevel.org/blog/2018/09/29/monad-transformer-variance.html) on the Typelevel blog.