All Downloads are FREE. Search and download functionalities are using the official Maven repository.

turbolift.internals.auxx.CanUnsafeRun.scala Maven / Gradle / Ivy

The newest version!
package turbolift.internals.auxx
import scala.annotation.implicitNotFound
import turbolift.!!
import turbolift.effects.IO

//@#@ not used anymore

@implicitNotFound(msg =
  "Effect leak (implicit not found: CanUnsafeRun)"+
  "\n  Effects remaining unhandled:"+
  "\n    ${U}"
)
//// asserts U <= IO
private[turbolift] sealed trait CanUnsafeRun[U]:
  def apply[A](comp: A !! U): A !! Any

private[turbolift] object CanUnsafeRun:
  private[turbolift] val singleton = new CanUnsafeRun[Any]:
    override def apply[A](comp: A !! Any): A !! Any = comp

  implicit def CanUnsafeRun_evidence[U](implicit ev: IO <:< U): CanUnsafeRun[U] =
    CanUnsafeRun.singleton.asInstanceOf[CanUnsafeRun[U]]




© 2015 - 2024 Weber Informatics LLC | Privacy Policy