Package

zio

prelude

Permalink

package prelude

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. prelude
  2. ZivariantSyntax
  3. ZSetSyntax
  4. ZNonEmptySetSyntax
  5. PartialOrdSyntax
  6. OrdSyntax
  7. NonEmptySetSyntax
  8. NonEmptyListSyntax
  9. NonEmptyForEachSyntax
  10. NewtypeFExports
  11. InverseSyntax
  12. InvariantSyntax
  13. IdentitySyntax
  14. IdentityEitherSyntax
  15. IdentityBothSyntax
  16. IdExports
  17. HashSyntax
  18. ForEachSyntax
  19. EqualSyntax
  20. DivariantSyntax
  21. DebugSyntax
  22. CovariantSyntax
  23. ContravariantSyntax
  24. ConstExports
  25. CommutativeEitherSyntax
  26. CommutativeBothSyntax
  27. BicovariantSyntax
  28. AssociativeFlattenSyntax
  29. AssociativeEitherSyntax
  30. AssociativeComposeSyntax
  31. AssociativeBothSyntax
  32. AssociativeSyntax
  33. AnyRef
  34. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type <=>[A, B] = Equivalence[A, B]

    Permalink
  2. type AnyF[_] = Any

    Permalink
  3. implicit final class AnySyntax[A] extends AnyVal

    Permalink
  4. sealed trait AnyType[A] extends AnyRef

    Permalink
  5. trait Associative[A] extends AnyRef

    Permalink

    The Associative[A] type class describes an associative binary operator for a type A.

    The Associative[A] type class describes an associative binary operator for a type A. For example, addition for integers, and string concatenation for strings.

    Associative is at the top of the hierarchy for abstracting over operations to combine types because while there are some operations that are not associative but do obey other laws, it is generally difficult to combine more than two values in interesting ways with these operators, and thus to build solutions to more complicated problems out of solutions to simpler ones.

    For example, the mean of two numbers is an operation that is commutative but not associative. However, the lack of associativity is an indication that we can't combine the means of multiple values in an interesting way with this definition. If we attempt to take the mean of three values we always place twice as much weight on one number as the others, which is rarely what we want.

    If we instead define this operation using a StatsCounter object then means can be combined in ways that are associative, commutative, and have an identity element, supporting much more interesting modes of composition.

  6. trait AssociativeBoth[F[_]] extends AnyRef

    Permalink

    An associative binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)].

    An associative binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)].

    Annotations
    @implicitNotFound( ... )
  7. implicit class AssociativeBothContravariantOps[F[-_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for contravariant types.

    Provides infix syntax for associative operations for contravariant types.

    Definition Classes
    AssociativeBothSyntax
  8. implicit class AssociativeBothCovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for covariant types.

    Provides infix syntax for associative operations for covariant types.

    Definition Classes
    AssociativeBothSyntax
  9. trait AssociativeBothLowPriority extends AnyRef

    Permalink
  10. implicit class AssociativeBothOps[F[_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for invariant types.

    Provides infix syntax for associative operations for invariant types.

    Definition Classes
    AssociativeBothSyntax
  11. trait AssociativeBothSyntax extends AnyRef

    Permalink
  12. implicit class AssociativeBothTuple10Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  13. implicit class AssociativeBothTuple11Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  14. implicit class AssociativeBothTuple12Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  15. implicit class AssociativeBothTuple13Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  16. implicit class AssociativeBothTuple14Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  17. implicit class AssociativeBothTuple15Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  18. implicit class AssociativeBothTuple16Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  19. implicit class AssociativeBothTuple17Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  20. implicit class AssociativeBothTuple18Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  21. implicit class AssociativeBothTuple19Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  22. implicit class AssociativeBothTuple20Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  23. implicit class AssociativeBothTuple21Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  24. implicit class AssociativeBothTuple22Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  25. implicit class AssociativeBothTuple2Ops[F[+_], T1, T2] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  26. implicit class AssociativeBothTuple3Ops[F[+_], T1, T2, T3] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  27. implicit class AssociativeBothTuple4Ops[F[+_], T1, T2, T3, T4] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  28. implicit class AssociativeBothTuple5Ops[F[+_], T1, T2, T3, T4, T5] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  29. implicit class AssociativeBothTuple6Ops[F[+_], T1, T2, T3, T4, T5, T6] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  30. implicit class AssociativeBothTuple7Ops[F[+_], T1, T2, T3, T4, T5, T6, T7] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  31. implicit class AssociativeBothTuple8Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  32. implicit class AssociativeBothTuple9Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9] extends AnyRef

    Permalink
    Definition Classes
    AssociativeBothSyntax
  33. trait AssociativeCompose[=>:[-_, +_]] extends AnyRef

    Permalink
  34. implicit class AssociativeComposeOps[A, B, =>:[-_, +_]] extends AnyRef

    Permalink
    Definition Classes
    AssociativeComposeSyntax
  35. trait AssociativeComposeSyntax extends AnyRef

    Permalink
  36. trait AssociativeEither[F[_]] extends AnyRef

    Permalink

    An associative binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]].

    An associative binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]].

    Annotations
    @implicitNotFound( ... )
  37. implicit class AssociativeEitherContravariantOps[F[-_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for contravariant types.

    Provides infix syntax for associative operations for contravariant types.

    Definition Classes
    AssociativeEitherSyntax
  38. implicit class AssociativeEitherCovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for covariant types.

    Provides infix syntax for associative operations for covariant types.

    Definition Classes
    AssociativeEitherSyntax
  39. implicit class AssociativeEitherOps[F[_], A] extends AnyRef

    Permalink

    Provides infix syntax for associative operations for invariant types.

    Provides infix syntax for associative operations for invariant types.

    Definition Classes
    AssociativeEitherSyntax
  40. trait AssociativeEitherSyntax extends AnyRef

    Permalink
  41. trait AssociativeFlatten[F[+_]] extends AnyRef

    Permalink

    AssociativeFlatten describes a type that can be "flattened" in an associative way.

    AssociativeFlatten describes a type that can be "flattened" in an associative way. For example, if we have a list of lists of lists, we can flatten it by either flattening the two inner lists and then flattening the resulting lists, or flattening the two outer lists and then flattening that resulting list. Because the operation is associative, the resulting list is the same either way.

    Annotations
    @implicitNotFound( ... )
  42. implicit class AssociativeFlattenCovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for flattening covariant types.

    Provides infix syntax for flattening covariant types.

    Definition Classes
    AssociativeFlattenSyntax
  43. implicit class AssociativeFlattenOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for flattening types.

    Provides infix syntax for flattening types.

    Definition Classes
    AssociativeFlattenSyntax
  44. trait AssociativeFlattenSyntax extends AnyRef

    Permalink
  45. trait AssociativeLowPriority extends AnyRef

    Permalink
  46. implicit class AssociativeOps[+A] extends AnyRef

    Permalink

    Provides infix syntax for combining two values with an associative operation.

    Provides infix syntax for combining two values with an associative operation.

    Definition Classes
    AssociativeSyntax
  47. trait AssociativeSyntax extends AnyRef

    Permalink
  48. trait Bicovariant[<=>[+_, +_]] extends RightCovariant[<=>]

    Permalink
  49. implicit class BicovariantOps[<=>[+_, +_], A, B] extends AnyRef

    Permalink
    Definition Classes
    BicovariantSyntax
  50. trait BicovariantSyntax extends AnyRef

    Permalink
  51. trait Commutative[A] extends Associative[A]

    Permalink

    The Commutative type class describes a binary operator for a type A that is both associative and commutative.

    The Commutative type class describes a binary operator for a type A that is both associative and commutative. This means that a1 <> a2 is equal to a2 <> a1 for all values a1 and a2. Examples of commutative operations include addition for integers, but not concatenation for strings.

    Commutative operators are useful because combining values with a commutative operation results in the same value regardless of the order in which values are combined, allowing us to combine values in the order that is most efficient and allowing us to return determinate values even when the order of original values is indeterminate.

  52. trait CommutativeBoth[F[_]] extends AssociativeBoth[F]

    Permalink

    A commutative binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)].

    A commutative binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)].

    Annotations
    @implicitNotFound( ... )
  53. implicit class CommutativeBothContraVariantOps[F[-_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for contravariant types.

    Provides infix syntax for commutative operations for contravariant types.

    Definition Classes
    CommutativeBothSyntax
  54. implicit class CommutativeBothCovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for covariant types.

    Provides infix syntax for commutative operations for covariant types.

    Definition Classes
    CommutativeBothSyntax
  55. implicit class CommutativeBothOps[F[_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for invariant types.

    Provides infix syntax for commutative operations for invariant types.

    Definition Classes
    CommutativeBothSyntax
  56. trait CommutativeBothSyntax extends AnyRef

    Permalink
  57. implicit class CommutativeBothTuple10Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  58. implicit class CommutativeBothTuple11Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  59. implicit class CommutativeBothTuple12Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  60. implicit class CommutativeBothTuple13Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  61. implicit class CommutativeBothTuple14Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  62. implicit class CommutativeBothTuple15Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  63. implicit class CommutativeBothTuple16Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  64. implicit class CommutativeBothTuple17Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  65. implicit class CommutativeBothTuple18Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  66. implicit class CommutativeBothTuple19Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  67. implicit class CommutativeBothTuple20Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  68. implicit class CommutativeBothTuple21Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  69. implicit class CommutativeBothTuple22Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  70. implicit class CommutativeBothTuple2Ops[F[+_], T1, T2] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  71. implicit class CommutativeBothTuple3Ops[F[+_], T1, T2, T3] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  72. implicit class CommutativeBothTuple4Ops[F[+_], T1, T2, T3, T4] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  73. implicit class CommutativeBothTuple5Ops[F[+_], T1, T2, T3, T4, T5] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  74. implicit class CommutativeBothTuple6Ops[F[+_], T1, T2, T3, T4, T5, T6] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  75. implicit class CommutativeBothTuple7Ops[F[+_], T1, T2, T3, T4, T5, T6, T7] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  76. implicit class CommutativeBothTuple8Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  77. implicit class CommutativeBothTuple9Ops[F[+_], T1, T2, T3, T4, T5, T6, T7, T8, T9] extends AnyRef

    Permalink
    Definition Classes
    CommutativeBothSyntax
  78. trait CommutativeEither[F[_]] extends AssociativeEither[F]

    Permalink

    A commutative binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]].

    A commutative binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]].

    Annotations
    @implicitNotFound( ... )
  79. implicit class CommutativeEitherContravariantOps[F[-_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for contravariant types.

    Provides infix syntax for commutative operations for contravariant types.

    Definition Classes
    CommutativeEitherSyntax
  80. implicit class CommutativeEitherCovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for covariant types.

    Provides infix syntax for commutative operations for covariant types.

    Definition Classes
    CommutativeEitherSyntax
  81. implicit class CommutativeEitherOps[F[_], A] extends AnyRef

    Permalink

    Provides infix syntax for commutative operations for invariant types.

    Provides infix syntax for commutative operations for invariant types.

    Definition Classes
    CommutativeEitherSyntax
  82. trait CommutativeEitherSyntax extends AnyRef

    Permalink
  83. sealed trait Comparison extends Product with Serializable

    Permalink
  84. type Const[+A, +B] = Type[A]

    Permalink
    Definition Classes
    ConstExports
  85. trait ConstExports extends AnyRef

    Permalink
  86. trait Contravariant[F[-_]] extends ContravariantSubset[F, AnyType] with Invariant[F]

    Permalink

    Contravariant[F] provides implicit evidence that F[-_] is a contravariant endofunctor in the category of Scala objects.

    Contravariant[F] provides implicit evidence that F[-_] is a contravariant endofunctor in the category of Scala objects.

    Contravariant instances of type F[A] "consume" values of type A in some sense. For example, Equal[A] takes two values of type A as input and returns a Boolean indicating whether they are equal. Similarly, a Ord[A] takes two values of type A as input and returns an Ordering with the result of comparing them and Hash takes an A value and returns an Int.

    Common examples of contravariant instances in ZIO include effects with regard to their environment types, sinks with regard to their input type, and polymorphic queues and references regarding their input types.

    Contravariant instances support a contramap operation, which allows transforming the input type given a function from the new input type to the old input type. For example, if we have an Ord[Int] that allows us to compare two integers and we have a function String => Int that returns the length of a string, then we can construct an Ord[String] that compares strings by computing their lengths with the provided function and comparing those.

  87. implicit class ContravariantOps[F[-_], A] extends AnyRef

    Permalink

    Provides infix syntax for mapping over covariant values.

    Provides infix syntax for mapping over covariant values.

    Definition Classes
    ContravariantSyntax
  88. trait ContravariantSubset[F[-_], Subset[_]] extends AnyRef

    Permalink
  89. trait ContravariantSyntax extends AnyRef

    Permalink
  90. trait Covariant[F[+_]] extends CovariantSubset[F, AnyType] with Invariant[F]

    Permalink

    Covariant[F] provides implicit evidence that F[+_] is a covariant endofunctor in the category of Scala objects.

    Covariant[F] provides implicit evidence that F[+_] is a covariant endofunctor in the category of Scala objects.

    Covariant instances of type F[A] "produce" values of type A in some sense. In some cases, such as with a List[A], this means that they contain values of type A, in which case we can simply access the elements of the collection. In other cases it means that output values of type A which may not already exists, such as with a Function0[A] that produces A values when invoked.

    Common examples of covariant instances in ZIO includes effects with respect to their error and value types, sinks with respect to their error and output types, and queues and references with respect to their error and output types.

    Covariant instances support a map operation which allows transforming the output type given a function from the old output type to the new output type. For example, if we have a List[String] and a function String => Int that returns the length of a string, then we can construct a List[Int] with the length of each string.

  91. implicit class CovariantOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for mapping over covariant values.

    Provides infix syntax for mapping over covariant values.

    Definition Classes
    CovariantSyntax
  92. trait CovariantSubset[F[+_], Subset[_]] extends AnyRef

    Permalink
  93. trait CovariantSyntax extends AnyRef

    Permalink
  94. trait Debug[-A] extends AnyRef

    Permalink

    Debug is an abstraction that describes the ability to render a value of type A to a human readable format for debugging purposes.

    Debug is an abstraction that describes the ability to render a value of type A to a human readable format for debugging purposes.

    Debug captures this information in a structured data format called a Repr, or a "representation" of the data. This representation can then be rendered to a human readable format using a Renderer, which knows how to render a representation to a specific human readable format. This two step process preserves information when creating the representation and allows rendering it in different ways. For example, we might want to render it as a simple string representation using the Simple renderer or as valid Scala code that we could paste into a REPL with the Scala renderer.

    You can use Repr to create structured representations of your own data types and even implement your own Renderer, for example to render representations to JSON, though in most cases the built in renderers will be all that you need.

  95. implicit final class DebugInterpolator extends AnyRef

    Permalink
    Definition Classes
    DebugSyntax
  96. implicit class DebugOps[A] extends AnyRef

    Permalink
    Definition Classes
    DebugSyntax
  97. trait DebugSyntax extends AnyRef

    Permalink
  98. trait DebugVersionSpecific extends AnyRef

    Permalink
  99. trait Derive[F[_], Typeclass[_]] extends AnyRef

    Permalink

    Derive[F, Typeclass] represents a universally quantified function from Typeclass[A] to Typeclass[F[A]] for some F[_].

    Derive[F, Typeclass] represents a universally quantified function from Typeclass[A] to Typeclass[F[A]] for some F[_]. You can think of Derive as a "recipe" for building a Typeclass[F[A]] instance given a Typeclass[A].

    For example, if we know how to compare values of type A for equality then we can compare lists with elements of type A for equality by checking that the length of the lists is the same and each pair of corresponding elements are equal. And we can do this for any type A as long as it has an Equal instance.

    This is used by the library to derive typeclass instances for higher kinded types given typeclass instances for the type they are parameterized on.

  100. type DeriveAssociative[F[_]] = Derive[F, Associative]

    Permalink
  101. type DeriveCommutative[F[_]] = Derive[F, Commutative]

    Permalink
  102. type DeriveDebug[F[_]] = Derive[F, Debug]

    Permalink
  103. type DeriveEqual[F[_]] = Derive[F, Equal]

    Permalink
  104. type DeriveHash[F[_]] = Derive[F, Hash]

    Permalink
  105. type DeriveIdentity[F[_]] = Derive[F, Identity]

    Permalink
  106. type DeriveInverse[F[_]] = Derive[F, Inverse]

    Permalink
  107. type DeriveOrd[F[_]] = Derive[F, Ord]

    Permalink
  108. trait Divariant[=>:[-_, +_]] extends RightCovariant[=>:]

    Permalink
  109. implicit class DivariantOps[=>:[-_, +_], A, B] extends AnyRef

    Permalink
    Definition Classes
    DivariantSyntax
  110. trait DivariantSyntax extends AnyRef

    Permalink
  111. type EReader[-R, +E, +A] = ZPure[Nothing, Unit, Unit, R, E, A]

    Permalink
  112. type EState[S, +E, +A] = ZPure[Nothing, S, S, Any, E, A]

    Permalink
  113. type EWriter[+W, +E, +A] = ZPure[W, Unit, Unit, Any, E, A]

    Permalink
  114. trait Equal[-A] extends AnyRef

    Permalink

    Equal[A] provides implicit evidence that two values of type A can be compared for equality.

    Equal[A] provides implicit evidence that two values of type A can be compared for equality.

    Annotations
    @implicitNotFound( ... )
  115. implicit class EqualOps[A] extends AnyRef

    Permalink

    Provides infix syntax for comparing two values for equality.

    Provides infix syntax for comparing two values for equality.

    Definition Classes
    EqualSyntax
  116. trait EqualSyntax extends AnyRef

    Permalink
  117. trait EqualVersionSpecific extends AnyRef

    Permalink
  118. trait Equivalence[A, B] extends PartialEquivalence[A, B, Nothing, Nothing]

    Permalink

    An Equivalence[A, B] defines an equivalence between two types A and B.

    An Equivalence[A, B] defines an equivalence between two types A and B. These types represent different ways to store the same information.

    For example, a List[Byte] is equivalent to a Vector[Byte]. Similarly, a List[Char] is equivalent to a String.

    Equivalences are symmetrical. So if A is equivalent to B, then B is equivalent to A.

  119. implicit class Flip1Ops[F[+_], G[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for flip1.

    Provides infix syntax for flip1.

    Definition Classes
    NonEmptyForEachSyntax
  120. implicit class FlipOps[F[+_], G[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for flip.

    Provides infix syntax for flip.

    Definition Classes
    ForEachSyntax
  121. trait ForEach[F[+_]] extends Covariant[F]

    Permalink

    ForEach is an abstraction that describes the ability to iterate over a collection, performing an effect for each element in the collection and returning a collection with the same shape in the context of the effect.

    ForEach is an abstraction that describes the ability to iterate over a collection, performing an effect for each element in the collection and returning a collection with the same shape in the context of the effect.

    By choosing the appropriate effect type to traverse with a wide range of operations on collections can be described. In particular, by traversing with state we can describe folds which allow implementing a wide variety of collection operations that produce summaries from a collection of values.

  122. implicit class ForEachOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for traversing collections.

    Provides infix syntax for traversing collections.

    Definition Classes
    ForEachSyntax
  123. trait ForEachSyntax extends AnyRef

    Permalink
  124. trait Hash[-A] extends Equal[A]

    Permalink

    Hash[A] provides implicit evidence that a value of type A can be hashed.

    Hash[A] provides implicit evidence that a value of type A can be hashed.

    Annotations
    @implicitNotFound( ... )
  125. implicit class HashOps[A] extends AnyRef

    Permalink

    Provides infix syntax for hashing a value.

    Provides infix syntax for hashing a value.

    Definition Classes
    HashSyntax
  126. trait HashSyntax extends AnyRef

    Permalink
  127. type Id[+A] = Type[A]

    Permalink
    Definition Classes
    IdExports
  128. trait IdExports extends AnyRef

    Permalink
  129. trait Idempotent[A] extends Associative[A]

    Permalink

    The Idempotent type class describes a binary operator for a type A that is both associative and produces the same value when combining two identical values.

    The Idempotent type class describes a binary operator for a type A that is both associative and produces the same value when combining two identical values. This means that a <> a is equal to a for all values a. Example of idempotent operations is union of sets, but not addition of integers.

    Idempotent operators are useful because combining the values with an idempotent operation results in the same value regardless of the number of values are combined, allowing us to optimize out unnecessary combinations of the same values.

  130. trait Identity[A] extends Associative[A]

    Permalink

    The Identity type class describes an associative binary operator for a type A that also has an identity element.

    The Identity type class describes an associative binary operator for a type A that also has an identity element. Combining any value with the identity element on either the left or the right must return the original value unchanged. For example, zero is an identity element for integer addition and the empty string is an identity element for string concatenation.

    Operators with an identity element are useful because the identity element provides a sensible default value when combining values of a type and no values exist.

  131. trait IdentityBoth[F[_]] extends AssociativeBoth[F]

    Permalink

    A binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)] with an identity.

    A binary operator that combines two values of types F[A] and F[B] to produce an F[(A, B)] with an identity.

    Annotations
    @implicitNotFound( ... )
  132. implicit class IdentityBothAnyOps[A] extends AnyRef

    Permalink
    Definition Classes
    IdentityBothSyntax
  133. trait IdentityBothSyntax extends AnyRef

    Permalink
  134. trait IdentityCompose[=>:[-_, +_]] extends AssociativeCompose[=>:]

    Permalink
  135. trait IdentityEither[F[_]] extends AssociativeEither[F]

    Permalink

    A binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]] with an identity value.

    A binary operator that combines two values of types F[A] and F[B] to produce an F[Either[A, B]] with an identity value.

    Annotations
    @implicitNotFound( ... )
  136. implicit class IdentityEitherAnyOps extends AnyRef

    Permalink
    Definition Classes
    IdentityEitherSyntax
  137. trait IdentityEitherSyntax extends AnyRef

    Permalink
  138. trait IdentityFlatten[F[+_]] extends AssociativeFlatten[F]

    Permalink

    IdentityFlatten described a type that can be "flattened" in an associative way and has an identity element with respect to that operation.

    IdentityFlatten described a type that can be "flattened" in an associative way and has an identity element with respect to that operation. For example, with a list we can always vacuously add a layer by wrapping a list in another list constructor and flattening the resulting list always returns the original list unchanged.

    Annotations
    @implicitNotFound( ... )
  139. implicit class IdentityOps[A] extends AnyRef

    Permalink

    Provides infix syntax for combining two values with an associative operation.

    Provides infix syntax for combining two values with an associative operation.

    Definition Classes
    IdentitySyntax
  140. trait IdentitySyntax extends AnyRef

    Permalink
  141. trait Invariant[F[_]] extends AnyRef

    Permalink
  142. implicit class InvariantOps[F[_], A] extends AnyRef

    Permalink

    Provides infix syntax for mapping over invariant values.

    Provides infix syntax for mapping over invariant values.

    Definition Classes
    InvariantSyntax
  143. trait InvariantSyntax extends AnyRef

    Permalink
  144. trait InvariantVersionSpecific extends AnyRef

    Permalink
  145. trait Inverse[A] extends Identity[A]

    Permalink

    The Inverse type class describes an associative binary operator for a type A that has an identity element and an inverse binary operator.

    The Inverse type class describes an associative binary operator for a type A that has an identity element and an inverse binary operator. Combining any value with itself with the inverse operator must return the identity element. For example, for integer addition zero is an identty element and subtraction is an inverse operation, because subtracting any value from itself always returns zero.

    Because Inverse defines a binary rather than a unary operator it can be used to describe inverse operations for types that do not have inverse values. For example, the natural numbers do not have inverses because the set of natural numbers does not include negative numbers. But we can still define a subtraction operation that is the inverse of addition for the natural numbers, since subtracting a number from itself always returns zero.

  146. implicit class InverseOps[A] extends AnyRef

    Permalink

    Provides infix syntax for combining two values with an inverse operation.

    Provides infix syntax for combining two values with an inverse operation.

    Definition Classes
    InverseSyntax
  147. trait InverseSyntax extends AnyRef

    Permalink
  148. trait LowPriorityInvariantImplicits extends AnyRef

    Permalink
  149. trait LowPriorityNonEmptyListImplicits extends AnyRef

    Permalink
  150. trait LowPriorityValidationImplicits extends AnyRef

    Permalink
  151. trait LowPriorityZNonEmptySetImplicits extends AnyRef

    Permalink
  152. trait LowPriorityZSetImplicits extends AnyRef

    Permalink
  153. implicit final class MapSyntax[K, V] extends AnyVal

    Permalink
  154. type MultiSet[+A] = ZSet[A, Natural]

    Permalink
  155. abstract class Newtype[A] extends NewtypeVersionSpecific

    Permalink

    The class of objects corresponding to newtypes.

    The class of objects corresponding to newtypes. Users should implement an object that extends this class to create their own newtypes, specifying A as the underlying type to wrap.

    object Meter extends Newtype[Double]
    type Meter = Meter.Type
  156. abstract class NewtypeF extends NewtypeModuleF.NewtypeF

    Permalink

    The class of objects corresponding to parameterized newtypes.

    The class of objects corresponding to parameterized newtypes. Users should implement an object that extends this class to create their own parameterized newtypes

    object Sum extends NewtypeF
    type Sum[A] = Sum.Type[A]
    Definition Classes
    NewtypeFExports
  157. trait NewtypeFExports extends AnyRef

    Permalink
  158. trait NewtypeVersionSpecific extends AnyRef

    Permalink
  159. trait NonEmptyForEach[F[+_]] extends ForEach[F]

    Permalink

    A NonEmptyForEach describes a ForEach that is guaranteed to contain at least one element, such as a NonEmptyList, a NonEmptyChunk, or certain tree like data structures.

    A NonEmptyForEach describes a ForEach that is guaranteed to contain at least one element, such as a NonEmptyList, a NonEmptyChunk, or certain tree like data structures.

    Because of the additional information that there is always at least one element, certain operations are available on a NonEmptyForEach that are not available on a ForEach. For example, if an ordering is defined on the elements of a NonEmptyForEach then min and max are defined, whereas for a ForEach only minOption and maxOption would be, since the collection might not contain any elements at all.

  160. implicit class NonEmptyForEachOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for traversing collections.

    Provides infix syntax for traversing collections.

    Definition Classes
    NonEmptyForEachSyntax
  161. trait NonEmptyForEachSyntax extends AnyRef

    Permalink
  162. sealed trait NonEmptyList[+A] extends AnyRef

    Permalink

    A NonEmptyList[A] is a list of one or more values of type A.

    A NonEmptyList[A] is a list of one or more values of type A. Unlike a List, a NonEmptyList is guaranteed to contain at least one element. This additional structure allows some operations to be defined on NonEmptyList that are not safe on List, such as head and reduceAll.

    For interoperability with Scala's collection library an implicit conversion is provided from NonEmptyList to the :: case of List. Operations that cannot preserve the guarantee that the resulting collection must have at least one element will return a List instead.

  163. implicit final class NonEmptyListConsOps[A] extends AnyRef

    Permalink
    Definition Classes
    NonEmptyListSyntax
  164. implicit final class NonEmptyListListOps[A] extends AnyRef

    Permalink
    Definition Classes
    NonEmptyListSyntax
  165. trait NonEmptyListSyntax extends AnyRef

    Permalink
  166. final class NonEmptyMap[K, V] extends AnyRef

    Permalink

    A non-empty wrapper for the scala immutable map.

    A non-empty wrapper for the scala immutable map. Note - this does not attempt to implement all features of map but what the author considers to be the "normal ones".

  167. trait NonEmptyMapSyntax extends AnyRef

    Permalink
  168. type NonEmptyMultiSet[+A] = ZNonEmptySet[A, Natural]

    Permalink
  169. final class NonEmptySet[A] extends AnyRef

    Permalink
  170. implicit final class NonEmptySetIterableOps[A] extends AnyRef

    Permalink
    Definition Classes
    NonEmptySetSyntax
  171. implicit final class NonEmptySetSetOps[A] extends AnyRef

    Permalink
    Definition Classes
    NonEmptySetSyntax
  172. trait NonEmptySetSyntax extends AnyRef

    Permalink
  173. final class NonEmptySortedMap[K, V] extends AnyRef

    Permalink

    A non-empty wrapper for the scala immutable map.

    A non-empty wrapper for the scala immutable map. Note - this does not attempt to implement all features of map but what the author considers to be the "normal ones".

  174. trait NonEmptySortedMapSyntax extends AnyRef

    Permalink
  175. final class NonEmptySortedSet[A] extends AnyRef

    Permalink
  176. trait NonEmptySortedSetSyntax extends AnyRef

    Permalink
  177. trait Ord[-A] extends PartialOrd[A]

    Permalink

    Ord[A] provides implicit evidence that values of type A have a total ordering.

    Ord[A] provides implicit evidence that values of type A have a total ordering.

    Annotations
    @implicitNotFound( "No implicit Ord defined for ${A}." )
  178. implicit class OrdOps[A] extends AnyRef

    Permalink

    Provides infix syntax for comparing two values with a total ordering.

    Provides infix syntax for comparing two values with a total ordering.

    Definition Classes
    OrdSyntax
  179. trait OrdSyntax extends AnyRef

    Permalink
  180. sealed trait Ordering extends PartialOrdering

    Permalink

    An Ordering is the result of comparing two values.

    An Ordering is the result of comparing two values. The result may be LessThan, Equals, or GreaterThan.

  181. sealed trait ParSeq[+Z <: Unit, +A] extends AnyRef

    Permalink

    ParSeq is a data type that represents some notion of "events" that can take place in parallel or in sequence.

    ParSeq is a data type that represents some notion of "events" that can take place in parallel or in sequence. For example, a ParSeq parameterized on some error type could be used to model the potentially multiple ways that an application can fail. On the other hand, a ParSeq parameterized on some request type could be used to model a collection of requests to external data sources, some of which could be executed in parallel and some of which must be executed sequentially.

  182. trait PartialEquivalence[A, B, +E1, +E2] extends AnyRef

    Permalink
    Annotations
    @silent( "Unused import" )
  183. trait PartialOrd[-A] extends Equal[A]

    Permalink

    PartialOrd[A] provides implicit evidence that values of type A have a partial ordering.

    PartialOrd[A] provides implicit evidence that values of type A have a partial ordering.

    Annotations
    @implicitNotFound( ... )
  184. implicit class PartialOrdOps[A] extends AnyRef

    Permalink

    Provides infix syntax for comparing two values with a total ordering.

    Provides infix syntax for comparing two values with a total ordering.

    Definition Classes
    PartialOrdSyntax
  185. trait PartialOrdSyntax extends AnyRef

    Permalink
  186. sealed trait PartialOrdering extends Product with Serializable

    Permalink
  187. type Reader[-R, +A] = ZPure[Nothing, Unit, Unit, R, Nothing, A]

    Permalink
  188. trait RightCovariant[<=>[_, +_]] extends AnyRef

    Permalink
  189. final class SafeFunction[-In, +Out] extends (In) ⇒ Out

    Permalink

    A SafeFunction is a function that can be freely composed with the guarantee that functions of arbitrary size can be evaluated in constant stack space.

    A SafeFunction is a function that can be freely composed with the guarantee that functions of arbitrary size can be evaluated in constant stack space. It does this by maintaining each of the composed functions internally in a data structure and evaluating them in a loop when the function is called.

  190. type State[S, +A] = ZPure[Nothing, S, S, Any, Nothing, A]

    Permalink
  191. abstract class Subtype[A] extends Newtype[A]

    Permalink
  192. abstract class SubtypeF extends NewtypeModuleF.SubtypeF

    Permalink

    The class of objects corresponding to parameterized subtypes.

    The class of objects corresponding to parameterized subtypes. Users should implement an object that extends this class to create their own parameterized subtypes

    object Sum extends SubtypeF
    type Sum[A] = Sum.Type[A]
    Definition Classes
    NewtypeFExports
  193. sealed trait These[+A, +B] extends AnyRef

    Permalink

    These is a data type representing a value that may either be a Left with anA, a Right with a B, or a Both with an A and a B.

    These is a data type representing a value that may either be a Left with anA, a Right with a B, or a Both with an A and a B.

    These can be useful to model certain domains where both values may be present in addition to one or the other. For example, in streaming applications we may want to consume values from two upstream producers concurrently. Depending on the timing of the producers either one producer, the other, or both producers may have values that are ready to be consumed. Using These provides a convenient way to model all of these possibilities in a single "flat" data type.

    These can also be useful for representing computations that may produce both a value and an error. For example, transferring money between two bank accounts might either succeed, fail completely if there are not sufficient funds, or succeed with some warnings if the sender's account balance would be very low after the transfer or the receiver's account has not been verified. These allows modeling these types of computations and preserving information regarding all errors while still potentially returning a successful computation.

  194. type Validation[+E, +A] = ZValidation[Nothing, E, A]

    Permalink
  195. type Writer[+W, +A] = ZPure[W, Unit, Unit, Any, Nothing, A]

    Permalink
  196. final class ZNonEmptySet[+A, +B] extends AnyRef

    Permalink

    Similar to ZSet, a ZNonEmptySet[A, B] is a guaranteed non-empty set of A values where B represents some notion of "how many" A values are included in the set.

    Similar to ZSet, a ZNonEmptySet[A, B] is a guaranteed non-empty set of A values where B represents some notion of "how many" A values are included in the set. This can be the number of times each element appears in the set if B is a natural number, the probability associated with an element in the set if B is a rational number, or even whether an element appears at all if B is a boolean.

  197. implicit final class ZNonEmptySetMapOps[+A] extends AnyRef

    Permalink
    Definition Classes
    ZNonEmptySetSyntax
  198. implicit final class ZNonEmptySetNonEmptyMultiSetOps[+A] extends AnyRef

    Permalink
    Definition Classes
    ZNonEmptySetSyntax
  199. trait ZNonEmptySetSyntax extends AnyRef

    Permalink
  200. final class ZSet[+A, +B] extends AnyRef

    Permalink

    A ZSet[A, B] is a set of A values where B represents some notion of "how many" A values are included in the set.

    A ZSet[A, B] is a set of A values where B represents some notion of "how many" A values are included in the set. This can be the number of times each element appears in the set if B is a natural number, the probability associated with an element in the set if B is a rational number, or even whether an element appears at all if B is a boolean.

  201. implicit final class ZSetMapOps[+A] extends AnyRef

    Permalink
    Definition Classes
    ZSetSyntax
  202. implicit final class ZSetMultiSetOps[+A] extends AnyRef

    Permalink
    Definition Classes
    ZSetSyntax
  203. trait ZSetSyntax extends AnyRef

    Permalink
  204. sealed trait ZValidation[+W, +E, +A] extends AnyRef

    Permalink

    ZValidation represents either a success of type A or a collection of one or more errors of type E along with in either case a log with entries of type W.

    ZValidation represents either a success of type A or a collection of one or more errors of type E along with in either case a log with entries of type W. Unlike Either, ZValidation does not "short circuit" on failures and instead allows accumulating multiple errors. This can be particularly useful in validating data, where we want to attempt to validate all of the data and retain information about all errors that arose, rather than failing at the first error.

  205. trait Zivariant[Z[-_, +_, +_]] extends AnyRef

    Permalink

    Abstract over type constructor with 3 parameters: on first as contravariant and on second and third as covariant.

  206. implicit class ZivariantOps[Z[-_, +_, +_], R, E, A] extends AnyRef

    Permalink
    Definition Classes
    ZivariantSyntax
  207. trait ZivariantSyntax extends AnyRef

    Permalink

Value Members

  1. object AnyType

    Permalink
  2. object Associative extends AssociativeLowPriority

    Permalink
  3. object AssociativeBoth extends AssociativeBothLowPriority

    Permalink
  4. object AssociativeCompose

    Permalink
  5. object AssociativeEither

    Permalink
  6. object AssociativeFlatten

    Permalink
  7. object Bicovariant

    Permalink
  8. object BuildInfo extends Product with Serializable

    Permalink

    This object was generated by sbt-buildinfo.

  9. object Commutative

    Permalink
  10. object CommutativeBoth

    Permalink
  11. object CommutativeEither

    Permalink
  12. object Comparison extends Serializable

    Permalink
  13. object Const extends prelude.NewtypeF

    Permalink
    Definition Classes
    ConstExports
  14. object Contravariant

    Permalink
  15. object Covariant

    Permalink
  16. object Debug extends DebugVersionSpecific

    Permalink
  17. object Derive

    Permalink
  18. object Divariant

    Permalink
  19. val EReader: ZPure.type

    Permalink
  20. val EState: ZPure.type

    Permalink
  21. val EWriter: ZPure.type

    Permalink
  22. object Equal extends EqualVersionSpecific

    Permalink
  23. object Equivalence

    Permalink
  24. object ForEach

    Permalink
  25. object Hash

    Permalink
  26. object Id extends prelude.NewtypeF

    Permalink
    Definition Classes
    IdExports
  27. object Idempotent

    Permalink
  28. object Identity

    Permalink
  29. object IdentityBoth

    Permalink
    Annotations
    @silent( "Unused import" )
  30. object IdentityEither

    Permalink
  31. object IdentityFlatten

    Permalink
  32. object Invariant extends LowPriorityInvariantImplicits with InvariantVersionSpecific

    Permalink
  33. object Inverse

    Permalink
  34. val MultiSet: ZSet.type

    Permalink
  35. object Newtype

    Permalink
  36. object NonEmptyForEach

    Permalink
  37. object NonEmptyList extends LowPriorityNonEmptyListImplicits

    Permalink
  38. object NonEmptyMap

    Permalink
  39. val NonEmptyMultiSet: ZNonEmptySet.type

    Permalink
  40. object NonEmptySet

    Permalink
  41. object NonEmptySortedMap

    Permalink
  42. object NonEmptySortedSet

    Permalink
  43. object Ord

    Permalink
  44. object Ordering extends Serializable

    Permalink
  45. object ParSeq

    Permalink
  46. object PartialEquivalence

    Permalink
  47. object PartialOrd

    Permalink
  48. object PartialOrdering extends Serializable

    Permalink
  49. val Reader: ZPure.type

    Permalink
  50. object SafeFunction

    Permalink
  51. val State: ZPure.type

    Permalink
  52. object These

    Permalink
  53. val Validation: ZValidation.type

    Permalink
  54. val Writer: ZPure.type

    Permalink
  55. object ZNonEmptySet extends LowPriorityZNonEmptySetImplicits

    Permalink
  56. object ZSet extends LowPriorityZSetImplicits

    Permalink
  57. object ZValidation extends LowPriorityValidationImplicits

    Permalink
  58. object Zivariant

    Permalink
  59. val any: Any

    Permalink
  60. object classic

    Permalink
  61. package coherent

    Permalink
  62. package data

    Permalink
  63. package fx

    Permalink
  64. package newtypes

    Permalink
  65. package recursive

    Permalink

Inherited from ZivariantSyntax

Inherited from ZSetSyntax

Inherited from ZNonEmptySetSyntax

Inherited from PartialOrdSyntax

Inherited from OrdSyntax

Inherited from NonEmptySetSyntax

Inherited from NonEmptyListSyntax

Inherited from NonEmptyForEachSyntax

Inherited from NewtypeFExports

Inherited from InverseSyntax

Inherited from InvariantSyntax

Inherited from IdentitySyntax

Inherited from IdentityEitherSyntax

Inherited from IdentityBothSyntax

Inherited from IdExports

Inherited from HashSyntax

Inherited from ForEachSyntax

Inherited from EqualSyntax

Inherited from DivariantSyntax

Inherited from DebugSyntax

Inherited from CovariantSyntax

Inherited from ContravariantSyntax

Inherited from ConstExports

Inherited from CommutativeEitherSyntax

Inherited from CommutativeBothSyntax

Inherited from BicovariantSyntax

Inherited from AssociativeFlattenSyntax

Inherited from AssociativeEitherSyntax

Inherited from AssociativeComposeSyntax

Inherited from AssociativeBothSyntax

Inherited from AssociativeSyntax

Inherited from AnyRef

Inherited from Any

Ungrouped