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. 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
  10. trait AssociativeBothSyntax extends AnyRef

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

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

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

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

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

    Permalink
    Definition Classes
    AssociativeBothSyntax
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. implicit class AssociativeBothTuple2Ops[F[+_], T1, T2] extends AnyRef

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AssociativeComposeSyntax
  34. trait AssociativeComposeSyntax extends AnyRef

    Permalink
  35. 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( ... )
  36. 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
  37. 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
  38. 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
  39. trait AssociativeEitherSyntax extends AnyRef

    Permalink
  40. 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( ... )
  41. 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
  42. implicit class AssociativeFlattenOps[F[+_], A] extends AnyRef

    Permalink

    Provides infix syntax for flattening types.

    Provides infix syntax for flattening types.

    Definition Classes
    AssociativeFlattenSyntax
  43. trait AssociativeFlattenSyntax extends AnyRef

    Permalink
  44. trait AssociativeLowPriority extends AnyRef

    Permalink
  45. 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
  46. trait AssociativeSyntax extends AnyRef

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

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

    Permalink
    Definition Classes
    BicovariantSyntax
  49. trait BicovariantSyntax extends AnyRef

    Permalink
  50. 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.

  51. 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( ... )
  52. 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
  53. 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
  54. 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
  55. trait CommutativeBothSyntax extends AnyRef

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

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

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

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

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

    Permalink
    Definition Classes
    CommutativeBothSyntax
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. implicit class CommutativeBothTuple2Ops[F[+_], T1, T2] extends AnyRef

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    CommutativeBothSyntax
  77. 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( ... )
  78. 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
  79. 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
  80. 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
  81. trait CommutativeEitherSyntax extends AnyRef

    Permalink
  82. sealed trait Comparison extends Product with Serializable

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

    Permalink
    Definition Classes
    ConstExports
  84. trait ConstExports extends AnyRef

    Permalink
  85. 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.

  86. 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
  87. trait ContravariantSubset[F[-_], Subset[_]] extends AnyRef

    Permalink
  88. trait ContravariantSyntax extends AnyRef

    Permalink
  89. 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.

  90. 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
  91. trait CovariantSubset[F[+_], Subset[_]] extends AnyRef

    Permalink
  92. trait CovariantSyntax extends AnyRef

    Permalink
  93. 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.

  94. implicit final class DebugInterpolator extends AnyRef

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

    Permalink
    Definition Classes
    DebugSyntax
  96. trait DebugSyntax extends AnyRef

    Permalink
  97. trait DebugVersionSpecific extends AnyRef

    Permalink
  98. 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.

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

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    DivariantSyntax
  109. trait DivariantSyntax extends AnyRef

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

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

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

    Permalink
  113. 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( ... )
  114. 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
  115. trait EqualSyntax extends AnyRef

    Permalink
  116. final case class Equivalence[A, B](to: (A) ⇒ B, from: (B) ⇒ A) extends Product with Serializable

    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.

    to

    A function that converts an A into a B.

    from

    A function that converts a B into an A.

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

    Permalink

    Provides infix syntax for flip1.

    Provides infix syntax for flip1.

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

    Permalink

    Provides infix syntax for flip.

    Provides infix syntax for flip.

    Definition Classes
    ForEachSyntax
  119. 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.

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

    Permalink

    Provides infix syntax for traversing collections.

    Provides infix syntax for traversing collections.

    Definition Classes
    ForEachSyntax
  121. trait ForEachSyntax extends AnyRef

    Permalink
  122. 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( ... )
  123. implicit class HashOps[A] extends AnyRef

    Permalink

    Provides infix syntax for hashing a value.

    Provides infix syntax for hashing a value.

    Definition Classes
    HashSyntax
  124. trait HashSyntax extends AnyRef

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

    Permalink
    Definition Classes
    IdExports
  126. trait IdExports extends AnyRef

    Permalink
  127. 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.

  128. 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.

  129. 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( ... )
  130. implicit class IdentityBothAnyOps[A] extends AnyRef

    Permalink
    Definition Classes
    IdentityBothSyntax
  131. trait IdentityBothSyntax extends AnyRef

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

    Permalink
  133. 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( ... )
  134. implicit class IdentityEitherAnyOps extends AnyRef

    Permalink
    Definition Classes
    IdentityEitherSyntax
  135. trait IdentityEitherSyntax extends AnyRef

    Permalink
  136. 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( ... )
  137. 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
  138. trait IdentitySyntax extends AnyRef

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

    Permalink
  140. 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
  141. trait InvariantSyntax extends AnyRef

    Permalink
  142. trait InvariantVersionSpecific extends AnyRef

    Permalink
  143. 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.

  144. 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
  145. trait InverseSyntax extends AnyRef

    Permalink
  146. trait LowPriorityInvariantImplicits extends AnyRef

    Permalink
  147. trait LowPriorityNonEmptyListImplicits extends AnyRef

    Permalink
  148. trait LowPriorityValidationImplicits extends AnyRef

    Permalink
  149. trait LowPriorityZNonEmptySetImplicits extends AnyRef

    Permalink
  150. trait LowPriorityZSetImplicits extends AnyRef

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

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

    Permalink
  153. abstract class Newtype[A] extends AnyRef

    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
  154. 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
  155. trait NewtypeFExports extends AnyRef

    Permalink
  156. 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.

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

    Permalink

    Provides infix syntax for traversing collections.

    Provides infix syntax for traversing collections.

    Definition Classes
    NonEmptyForEachSyntax
  158. trait NonEmptyForEachSyntax extends AnyRef

    Permalink
  159. 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.

  160. implicit final class NonEmptyListConsOps[A] extends AnyRef

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

    Permalink
    Definition Classes
    NonEmptyListSyntax
  162. trait NonEmptyListSyntax extends AnyRef

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

    Permalink
  164. final class NonEmptySet[A] extends AnyRef

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

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

    Permalink
    Definition Classes
    NonEmptySetSyntax
  167. trait NonEmptySetSyntax extends AnyRef

    Permalink
  168. 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}." )
  169. 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
  170. trait OrdSyntax extends AnyRef

    Permalink
  171. 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.

  172. 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.

  173. final case class PartialEquivalence[A, B, +E1, +E2](to: (A) ⇒ Either[E1, B], from: (B) ⇒ Either[E2, A]) extends Product with Serializable

    Permalink
    Annotations
    @silent( "Unused import" )
  174. 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( ... )
  175. 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
  176. trait PartialOrdSyntax extends AnyRef

    Permalink
  177. sealed trait PartialOrdering extends Product with Serializable

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

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

    Permalink
  180. 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.

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

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

    Permalink

    The class of objects corresponding to subtypes.

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

    object And extends Subtype[Boolean]
    type And = And.Type
  183. 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
  184. sealed trait These[+A, +B] extends AnyRef

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

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

    Permalink
  187. 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.

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

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

    Permalink
    Definition Classes
    ZNonEmptySetSyntax
  190. trait ZNonEmptySetSyntax extends AnyRef

    Permalink
  191. 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.

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

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

    Permalink
    Definition Classes
    ZSetSyntax
  194. trait ZSetSyntax extends AnyRef

    Permalink
  195. 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.

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

    Permalink

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

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

    Permalink
    Definition Classes
    ZivariantSyntax
  198. trait ZivariantSyntax extends AnyRef

    Permalink

Value Members

  1. object AnyType

    Permalink
  2. object Associative extends AssociativeLowPriority

    Permalink
  3. object AssociativeBoth

    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

    Permalink
  23. object Equivalence extends Serializable

    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. val NonEmptyMultiSet: ZNonEmptySet.type

    Permalink
  39. object NonEmptySet

    Permalink
  40. object Ord

    Permalink
  41. object Ordering extends Serializable

    Permalink
  42. object ParSeq

    Permalink
  43. object PartialEquivalence extends Serializable

    Permalink
  44. object PartialOrd

    Permalink
  45. object PartialOrdering extends Serializable

    Permalink
  46. val Reader: ZPure.type

    Permalink
  47. object SafeFunction

    Permalink
  48. val State: ZPure.type

    Permalink
  49. object These

    Permalink
  50. val Validation: ZValidation.type

    Permalink
  51. val Writer: ZPure.type

    Permalink
  52. object ZNonEmptySet extends LowPriorityZNonEmptySetImplicits

    Permalink
  53. object ZSet extends LowPriorityZSetImplicits

    Permalink
  54. object ZValidation extends LowPriorityValidationImplicits

    Permalink
  55. object Zivariant

    Permalink
  56. val any: Any

    Permalink
  57. object classic

    Permalink
  58. package coherent

    Permalink
  59. package fx

    Permalink
  60. package newtypes

    Permalink
  61. 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