StatusInstances
StatusInstances provides cats.Monoid and cats.Eq instances for Status[E].
The Monoid instance exposes the algebraic structure described in the core module: Status.Success is the
identity element, and combine is the binary operation. Import StatusInstances.* to bring the instances
into scope.
import h8io.stages.*
import h8io.stages.cats.StatusInstances.*
import _root_.cats.{Eq, Monoid}
val m = Monoid[Status[String]]
// m: Monoid[Status[String]] = h8io.stages.cats.StatusInstances$$anon$1@11a15dd
m.empty
// res0: Status[String] = Success
m.combine(Status.Success, Status.error("oops"))
// res1: Status[String] = Complete("oops")
m.combine(Status.error("a"), Status.error("b"))
// res2: Status[String] = Complete("a", "b")
val eq = Eq[Status[String]]
// eq: Eq[Status[String]] = cats.kernel.Eq$$anonfun$fromUniversalEquals$2@2b8bfaad
eq.eqv(Status.Success, Status.Success)
// res3: Boolean = true
eq.eqv(Status.Success, Status.error("x"))
// res4: Boolean = false