簡體   English   中英

EitherT [Option,A,B] ===選項[A [B,B]]

[英]EitherT[Option, A, B] === Option[Either[A,B]]

如果我理解正確, EitherT[Option,A,B ]應該與Option[Either[A,B]] ,但編譯器不同意。 以下代碼無法編譯:

def f[A,B] = implicitly[EitherT[Option, A, B] === Option[Either[A,B]]] 

我錯過了什么?

它們是同構的,但不是同一個值。 EitherT[Option,A,B]包裝Option[Either[A,B]]類型的值以提供不同的行為。 我們來看看定義:

final case class EitherT[F[_], A, B](run: F[A \/ B])

所以這里的EitherT包裝了一個Option,而名為run的值是一個Option[Either[A,B]]類型的值Option[Either[A,B]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM