Packages

trait Tag[T] extends AnyRef

Like scala.reflect.api.TypeTags.TypeTag, but supports higher-kinded type tags via TagK type class.

In context of DI this lets you define modules parameterized by higher-kinded type parameters. This is especially helpful for applying tagless final style

Example:

class MyModule[F[_]: Monad: TagK] {
  make[MyService[F]]
  make[F[Int]].named("lucky-number").from(Monad[F].pure(7))
}

Without a TagK constraint above, this example would fail with no TypeTag available for MyService[F] error

Currently some limitations apply as to when a Tag will be correctly constructed: * Type Parameters do not yet resolve inside structural refinements, e.g. T in

Tag[{ def x: T}]

* Type Parameters do not yet resolve inside higher-kinded type lambdas, e.g. T in

TagK[Either[T, ?]]

* TagK* does not resolve for constructors with bounded parameters, e.g. S in

class Abc[S <: String]; TagK[Abc]

(You can still have a bound in partial application: e.g.

class Abc[S <: String, A]; TagK[Abc["hi", ?]]

* Further details at https://github.com/7mind/izumi/pull/369

Annotations
@implicitNotFound( ... )
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Tag
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def fullLightTypeTag: FLTT
  2. abstract def tag: scala.reflect.api.Universe.TypeTag[T]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    Tag → AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped