Do you want to use the operator |@| .
scala> (even(1) |@| even(2) |@| even(3)) { (_,_,_) } <console> Failure(NonEmptyList(not even: 1, not even: 3)) scala> (even(2) |@| even(4) |@| even(6)) { (_,_,_) } <console> Success((2,4,6))
compare this with the tuple statement:
scala> even(1) tuple even(2) tuple even(3) <console> Failure(NonEmptyList(not even: 1, not even: 3)) scala> even(2) tuple even(4) tuple even(6) <console> Success(((2,4),6))
source share