Inject

object Inject extends InjectInstances
Companion
class
class Object
trait Matchable
class Any

Value members

Concrete methods

@inline
def apply[F[_], G[_]](implicit I: Inject[F, G]): Inject[F, G]
def inject[F[_], G[_], A](ga: G[Free[F, A]])(implicit I: Inject[G, F]): Free[F, A]
def instance[F[_], G[_]](inj_: NaturalTransformation[F, G], prj_: NaturalTransformation[G, [α] =>> Option[F[α]]]): Inject[F, G]

This should only be used by third party coproduct encodings. If G <: Coproduct it is likely to break typeclass coherence. Caveat Emptor.

This should only be used by third party coproduct encodings. If G <: Coproduct it is likely to break typeclass coherence. Caveat Emptor.

def match_[F[_], G[_], A](fa: Free[F, A])(implicit F: Functor[F], I: Inject[G, F]): Option[G[Free[F, A]]]

Implicits

Inherited implicits

implicit
def leftInjectInstance[F[_], G[_]]: Inject[F, [_] =>> Coproduct[F, G, _$6]]
Inherited from
InjectInstances
implicit
Inherited from
InjectInstances
implicit
def rightInjectInstance[F[_], G[_], H[_]](implicit I: Inject[F, G]): Inject[F, [_] =>> Coproduct[H, G, _$12]]
Inherited from
InjectInstances