Skip to content

Commit

Permalink
Merge pull request #518 from ceedubs/free-resume-xor
Browse files Browse the repository at this point in the history
Return Xor instead of Either in Free.resume
  • Loading branch information
non committed Sep 8, 2015
2 parents 672e010 + 425e634 commit 2455ca0
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion free/src/main/scala/cats/free/Free.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package free

import scala.annotation.tailrec

import cats.data.Xor, Xor.{Left, Right}
import cats.arrow.NaturalTransformation

object Free {
Expand Down Expand Up @@ -70,7 +71,7 @@ sealed abstract class Free[S[_], A] extends Product with Serializable {
* Evaluate a single layer of the free monad.
*/
@tailrec
final def resume(implicit S: Functor[S]): Either[S[Free[S, A]], A] = this match {
final def resume(implicit S: Functor[S]): S[Free[S, A]] Xor A = this match {
case Pure(a) => Right(a)
case Suspend(t) => Left(S.map(t)(Pure(_)))
case Gosub(c, f) =>
Expand Down

0 comments on commit 2455ca0

Please sign in to comment.