in algebird-core/src/main/scala/com/twitter/algebird/Eventually.scala [172:186]
override def one: Right[E, O] = Right(Ring.one[O])
override def times(x: Either[E, O], y: Either[E, O]): Either[E, O] =
x match {
case Left(xe) =>
y match {
case Left(ye) => left(Ring.times(xe, ye))
case Right(yo) => left(Ring.times(xe, convert(yo)))
}
case Right(xo) =>
y match {
case Left(ye) => left(Ring.times(convert(xo), ye))
case Right(yo) => conditionallyConvert(Ring.times(xo, yo))
}
}