从嵌套的析取结果类型组合左侧

时间:2015-03-02 03:21:55

标签: scala scalaz

如果我有一个\/[Errs, \/[Errs, Boolean]]类型,并希望合并两个左侧(两个Errs),那么最好的方法是\/[Errs,Boolean]新的Errs将从早期类型中的两个Errs附加两个leftsErrs只是case class

case class Errs(errors: List[Err])

Err

 case class Err(exceptionMessage: String, customMessage: String, statusCode: Int, extraInfo: Option[String] = None)

我正在尝试将type1 = \/[Errs, \/[Errs,Boolean]]转换为type2 = \/[Errs,Boolean]Errs中的type2应该是"合并" Errs(不会因合并两个析取而丢失任何left个信息。

1 个答案:

答案 0 :(得分:1)

为了完整起见:因为这是一个分离,你永远不必担心“合并”错误 - 要么整个事情是左边的Errs,要么是右边的左边是Errs。它不可能同时存在。

如果您要折叠这两个级别,t1.flatMap(identity)会将Errs \/ (Errs \/ Boolean)变为普通的Errs \/ Boolean