diff --git a/cats-effect/js/src/test/scala/github4s/cats/effect/js/CatsEffectJSSpec.scala b/cats-effect/js/src/test/scala/github4s/cats/effect/js/CatsEffectJSSpec.scala index cbfa3311b..797315869 100644 --- a/cats-effect/js/src/test/scala/github4s/cats/effect/js/CatsEffectJSSpec.scala +++ b/cats-effect/js/src/test/scala/github4s/cats/effect/js/CatsEffectJSSpec.scala @@ -82,7 +82,7 @@ class CatsEffectJSSpec extends AsyncFunSuite with Matchers { } // only here for the 80% coverage, to remove once JS makes use of Captures - test("IOCapture == IO.pure") { - ioCaptureInstance.capture("a") shouldBe IO.pure("a") + test("IOCapture == IO.apply") { + ioCaptureInstance.capture("a") shouldBe IO("a") } } diff --git a/cats-effect/shared/src/main/scala/github4s/cats/effect/IOCaptureInstance.scala b/cats-effect/shared/src/main/scala/github4s/cats/effect/IOCaptureInstance.scala index 7605b9efc..fea34d589 100644 --- a/cats-effect/shared/src/main/scala/github4s/cats/effect/IOCaptureInstance.scala +++ b/cats-effect/shared/src/main/scala/github4s/cats/effect/IOCaptureInstance.scala @@ -21,6 +21,6 @@ import github4s.free.interpreters.Capture trait IOCaptureInstance { implicit val ioCaptureInstance = new Capture[IO] { - override def capture[A](a: ⇒ A): IO[A] = IO.pure(a) + override def capture[A](a: ⇒ A): IO[A] = IO(a) } } diff --git a/github4s/shared/src/main/scala/github4s/Implicits.scala b/github4s/shared/src/main/scala/github4s/Implicits.scala index 5668687ab..fbc57b732 100644 --- a/github4s/shared/src/main/scala/github4s/Implicits.scala +++ b/github4s/shared/src/main/scala/github4s/Implicits.scala @@ -19,7 +19,7 @@ package github4s import cats.instances.FutureInstances import cats.{Eval, FlatMap, Id, Monad, MonadError} import github4s.free.interpreters._ -import scala.concurrent.Future +import scala.concurrent.{Future, ExecutionContext} object implicits extends FutureCaptureInstance @@ -29,8 +29,8 @@ object implicits trait FutureCaptureInstance { //Future Capture evidence: - implicit val futureCaptureInstance = new Capture[Future] { - override def capture[A](a: ⇒ A): Future[A] = Future.successful(a) + implicit def futureCaptureInstance(implicit ec: ExecutionContext) = new Capture[Future] { + override def capture[A](a: ⇒ A): Future[A] = Future(a) } }