package
tagging
Type Members
-
type
@@[+T, +U] = T with Tag[U]
-
implicit final
class
AndTagger[T, U] extends AnyVal
-
implicit final
class
AndTaggingF[F[_], T, U] extends AnyVal
-
implicit final
class
AndTaggingF2[F1[_], F2[_], T, U] extends AnyVal
-
implicit final
class
AndTaggingMapKey[M[_, _], K, A, V] extends AnyVal
-
-
implicit final
class
Function2Tagger[A, B, C] extends AnyVal
-
implicit final
class
Function3Tagger[A, B, C, D] extends AnyVal
-
implicit final
class
Function4Tagger[A, B, C, D, E] extends AnyVal
-
implicit final
class
FunctionTagger[A, B] extends AnyVal
-
trait
Tag[+U] extends Any
-
type
Tagged[+T, +U] = T with Tag[U]
-
implicit final
class
Tagger[T] extends AnyVal
-
implicit final
class
TaggingF[F[_], T] extends AnyVal
-
implicit final
class
TaggingF2[F1[_], F2[_], T] extends AnyVal
-
implicit final
class
TaggingMapKey[M[_, _], K, V] extends AnyVal
-
Value Members
-
Inherited from AnyRef
Inherited from Any
Tag instances with arbitrary types. The tags are usually empty
trait
s. Tags have no runtime overhead and are only used at compile-time for additional type safety.For example:
Original idea by Miles Sabin, see: https://gist.github.com/milessabin/89c9b47a91017973a35f