scalaz

Tag

object Tag

Source
Tag.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Tag
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. final class TagOf[T] extends ~>[Id.Id, [α$0$]AnyRef { ... /* 2 definitions in type refinement */ }]

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def apply[A, T](a: A): @@[A, T]

    subst specialized to Id.

    subst specialized to Id.

    Annotations
    @inline()
    To do

    According to Miles, @specialized doesn't help here. Maybe manually specialize.

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  18. def of[T]: TagOf[T]

    Variants of apply, subst, and unsubst that require specifying the tag type but are more likely to infer the other type parameters.

  19. def subst[A, F[_], T](fa: F[A]): F[@@[A, T]]

    Add a tag T to A.

    Add a tag T to A.

    NB: It is unsafe to subst or unsubst a tag in an F that is sensitive to the A type within. For example, if F is a GADT, rather than a normal ADT, it is probably unsafe. For "normal" types like List and function types, it is safe. More broadly, if it is possible to write a legal scalaz.InvariantFunctor over the parameter, subst of that parameter is safe.

    We do not have a type role system in Scala with which to declare the exact situations under which subst is safe. If we did, we would declare that subst is safe if and only if the parameter has "representational" or "phantom" role.

  20. def subst1[G[_], F[_[_]], T](fa: F[G]): F[[α]AnyRef { ... /* 2 definitions in type refinement */ }]

    Add a tag T to G[_]

  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  22. def toString(): String

    Definition Classes
    AnyRef → Any
  23. def unsubst[A, F[_], T](fa: F[@@[A, T]]): F[A]

    Remove the tag T, leaving A.

  24. def unsubst1[G[_], F[_[_]], T](fa: F[[α]AnyRef { ... /* 2 definitions in type refinement */ }]): F[G]

    Remove the tag T, leaving G

    Remove the tag T, leaving G

    Annotations
    @inline()
  25. def unwrap[A, T](a: @@[A, T]): A

    unsubst specialized to Id.

    unsubst specialized to Id.

    Annotations
    @inline()
  26. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped