Trait/Object

scalaz

Nondeterminism

Related Docs: object Nondeterminism | package scalaz

Permalink

trait Nondeterminism[F[_]] extends Monad[F]

A context supporting nondeterministic choice. Unlike Monad.bind, which imposes a total order on the sequencing of effects throughout a computation, the choose and chooseAny operations let us partially order the sequencing of effects. Canonical instances are concurrent.Future and concurrent.Task, which run their arguments in parallel, returning whichever comes back 'first'.

TODO - laws

Self Type
Nondeterminism[F]
Source
Nondeterminism.scala
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Nondeterminism
  2. Monad
  3. Bind
  4. Applicative
  5. InvariantApplicative
  6. Apply
  7. Functor
  8. InvariantFunctor
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait ApplicativeLaw extends ApplyLaw

    Permalink
    Definition Classes
    Applicative
  2. trait ApplyLaw extends FunctorLaw

    Permalink
    Definition Classes
    Apply
  3. trait BindLaw extends ApplyLaw

    Permalink
    Definition Classes
    Bind
  4. trait FlippedApply extends Apply[F]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Apply
  5. trait FunctorLaw extends InvariantFunctorLaw

    Permalink
    Definition Classes
    Functor
  6. trait InvariantFunctorLaw extends AnyRef

    Permalink
    Definition Classes
    InvariantFunctor
  7. trait MonadLaw extends ApplicativeLaw with BindLaw

    Permalink
    Definition Classes
    Monad

Abstract Value Members

  1. abstract def bind[A, B](fa: F[A])(f: (A) ⇒ F[B]): F[B]

    Permalink

    Equivalent to join(map(fa)(f)).

    Equivalent to join(map(fa)(f)).

    Definition Classes
    Bind
  2. abstract def chooseAny[A](head: F[A], tail: IList[F[A]]): F[(A, IList[F[A]])]

    Permalink
  3. abstract def point[A](a: ⇒ A): F[A]

    Permalink
    Definition Classes
    Applicative

Concrete Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def aggregate[A](fs: IList[F[A]])(implicit arg0: Monoid[A]): F[A]

    Permalink

    Nondeterministically sequence fs, collecting the results using a Monoid.

  5. def aggregate1[A](fs: NonEmptyList[F[A]])(implicit arg0: Semigroup[A]): F[A]

    Permalink
  6. def aggregateCommutative[A](fs: IList[F[A]])(implicit arg0: Monoid[A]): F[A]

    Permalink

    Nondeterministically sequence fs, collecting the results using a commutative Monoid.

  7. def aggregateCommutative1[A](fs: NonEmptyList[F[A]])(implicit arg0: Semigroup[A]): F[A]

    Permalink
  8. def ap[A, B](fa: ⇒ F[A])(f: ⇒ F[(A) ⇒ B]): F[B]

    Permalink

    Sequence f, then fa, combining their results by function application.

    Sequence f, then fa, combining their results by function application.

    NB: with respect to apply2 and all other combinators, as well as scalaz.Bind, the f action appears to the *left*. So f should be the "first" F-action to perform. This is in accordance with all other implementations of this typeclass in common use, which are "function first".

    Definition Classes
    BindApply
  9. def ap2[A, B, C](fa: ⇒ F[A], fb: ⇒ F[B])(f: F[(A, B) ⇒ C]): F[C]

    Permalink
    Definition Classes
    Apply
  10. def ap3[A, B, C, D](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C])(f: F[(A, B, C) ⇒ D]): F[D]

    Permalink
    Definition Classes
    Apply
  11. def ap4[A, B, C, D, E](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D])(f: F[(A, B, C, D) ⇒ E]): F[E]

    Permalink
    Definition Classes
    Apply
  12. def ap5[A, B, C, D, E, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E])(f: F[(A, B, C, D, E) ⇒ R]): F[R]

    Permalink
    Definition Classes
    Apply
  13. def ap6[A, B, C, D, E, FF, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF])(f: F[(A, B, C, D, E, FF) ⇒ R]): F[R]

    Permalink
    Definition Classes
    Apply
  14. def ap7[A, B, C, D, E, FF, G, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G])(f: F[(A, B, C, D, E, FF, G) ⇒ R]): F[R]

    Permalink
    Definition Classes
    Apply
  15. def ap8[A, B, C, D, E, FF, G, H, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H])(f: F[(A, B, C, D, E, FF, G, H) ⇒ R]): F[R]

    Permalink
    Definition Classes
    Apply
  16. def apF[A, B](f: ⇒ F[(A) ⇒ B]): (F[A]) ⇒ F[B]

    Permalink

    Flipped variant of ap.

    Flipped variant of ap.

    Definition Classes
    Apply
  17. def applicativeLaw: ApplicativeLaw

    Permalink
    Definition Classes
    Applicative
  18. val applicativeSyntax: ApplicativeSyntax[F]

    Permalink
    Definition Classes
    Applicative
  19. def apply[A, B](fa: F[A])(f: (A) ⇒ B): F[B]

    Permalink

    Alias for map.

    Alias for map.

    Definition Classes
    Functor
  20. def apply10[A, B, C, D, E, FF, G, H, I, J, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H], fi: ⇒ F[I], fj: ⇒ F[J])(f: (A, B, C, D, E, FF, G, H, I, J) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  21. def apply11[A, B, C, D, E, FF, G, H, I, J, K, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H], fi: ⇒ F[I], fj: ⇒ F[J], fk: ⇒ F[K])(f: (A, B, C, D, E, FF, G, H, I, J, K) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  22. def apply12[A, B, C, D, E, FF, G, H, I, J, K, L, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H], fi: ⇒ F[I], fj: ⇒ F[J], fk: ⇒ F[K], fl: ⇒ F[L])(f: (A, B, C, D, E, FF, G, H, I, J, K, L) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  23. def apply2[A, B, C](fa: ⇒ F[A], fb: ⇒ F[B])(f: (A, B) ⇒ C): F[C]

    Permalink
    Definition Classes
    BindApply
  24. def apply3[A, B, C, D](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C])(f: (A, B, C) ⇒ D): F[D]

    Permalink
    Definition Classes
    Apply
  25. def apply4[A, B, C, D, E](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D])(f: (A, B, C, D) ⇒ E): F[E]

    Permalink
    Definition Classes
    Apply
  26. def apply5[A, B, C, D, E, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E])(f: (A, B, C, D, E) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  27. def apply6[A, B, C, D, E, FF, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF])(f: (A, B, C, D, E, FF) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  28. def apply7[A, B, C, D, E, FF, G, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G])(f: (A, B, C, D, E, FF, G) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  29. def apply8[A, B, C, D, E, FF, G, H, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H])(f: (A, B, C, D, E, FF, G, H) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  30. def apply9[A, B, C, D, E, FF, G, H, I, R](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E], ff: ⇒ F[FF], fg: ⇒ F[G], fh: ⇒ F[H], fi: ⇒ F[I])(f: (A, B, C, D, E, FF, G, H, I) ⇒ R): F[R]

    Permalink
    Definition Classes
    Apply
  31. def applyApplicative: Applicative[[α]\/[F[α], α]]

    Permalink

    Add a unit to any Apply to form an Applicative.

    Add a unit to any Apply to form an Applicative.

    Definition Classes
    Apply
  32. def applyLaw: ApplyLaw

    Permalink
    Definition Classes
    Apply
  33. val applySyntax: ApplySyntax[F]

    Permalink
    Definition Classes
    Apply
  34. final def applying1[Z, A1](f: (A1) ⇒ Z)(implicit a1: F[A1]): F[Z]

    Permalink
    Definition Classes
    Apply
  35. final def applying2[Z, A1, A2](f: (A1, A2) ⇒ Z)(implicit a1: F[A1], a2: F[A2]): F[Z]

    Permalink
    Definition Classes
    Apply
  36. final def applying3[Z, A1, A2, A3](f: (A1, A2, A3) ⇒ Z)(implicit a1: F[A1], a2: F[A2], a3: F[A3]): F[Z]

    Permalink
    Definition Classes
    Apply
  37. final def applying4[Z, A1, A2, A3, A4](f: (A1, A2, A3, A4) ⇒ Z)(implicit a1: F[A1], a2: F[A2], a3: F[A3], a4: F[A4]): F[Z]

    Permalink
    Definition Classes
    Apply
  38. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  39. def bicompose[G[_, _]](implicit arg0: Bifunctor[G]): Bifunctor[[α, β]F[G[α, β]]]

    Permalink

    The composition of Functor F and Bifunctor G, [x, y]F[G[x, y]], is a Bifunctor

    The composition of Functor F and Bifunctor G, [x, y]F[G[x, y]], is a Bifunctor

    Definition Classes
    Functor
  40. def bindLaw: BindLaw

    Permalink
    Definition Classes
    Bind
  41. val bindSyntax: BindSyntax[F]

    Permalink
    Definition Classes
    Bind
  42. def both[A, B](a: F[A], b: F[B]): F[(A, B)]

    Permalink

    Obtain results from both a and b, nondeterministically ordering their effects.

  43. def choose[A, B](a: F[A], b: F[B]): F[\/[(A, F[B]), (F[A], B)]]

    Permalink

    A commutative operation which chooses nondeterministically to obtain a value from either a or b.

    A commutative operation which chooses nondeterministically to obtain a value from either a or b. If a 'wins', a 'residual' context for b is returned; if b wins, a residual context for a is returned. The residual is useful for various instances like Future, which may race the two computations and require a residual to ensure the result of the 'losing' computation is not discarded.

    This function can be defined in terms of chooseAny or vice versa. The default implementation calls chooseAny with a two-element list and uses the Functor for F to fix up types.

  44. def chooseAny[A](a: IList[F[A]]): Option[F[(A, IList[F[A]])]]

    Permalink

    A commutative operation which chooses nondeterministically to obtain a value from any of the elements of as.

    A commutative operation which chooses nondeterministically to obtain a value from any of the elements of as. In the language of posets, this constructs an antichain (a set of elements which are all incomparable) in the effect poset for this computation.

    returns

    None, if the input is empty.

  45. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  46. def compose[G[_]](implicit G0: Applicative[G]): Applicative[[α]F[G[α]]]

    Permalink

    The composition of Applicatives F and G, [x]F[G[x]], is an Applicative

    The composition of Applicatives F and G, [x]F[G[x]], is an Applicative

    Definition Classes
    Applicative
  47. def compose[G[_]](implicit G0: Apply[G]): Apply[[α]F[G[α]]]

    Permalink

    The composition of Applys F and G, [x]F[G[x]], is a Apply

    The composition of Applys F and G, [x]F[G[x]], is a Apply

    Definition Classes
    Apply
  48. def compose[G[_]](implicit G0: Functor[G]): Functor[[α]F[G[α]]]

    Permalink

    The composition of Functors F and G, [x]F[G[x]], is a Functor

    The composition of Functors F and G, [x]F[G[x]], is a Functor

    Definition Classes
    Functor
  49. def counzip[A, B](a: \/[F[A], F[B]]): F[\/[A, B]]

    Permalink
    Definition Classes
    Functor
  50. def discardLeft[A, B](fa: ⇒ F[A], fb: ⇒ F[B]): F[B]

    Permalink

    Combine fa and fb according to Apply[F] with a function that discards the A(s)

    Combine fa and fb according to Apply[F] with a function that discards the A(s)

    Definition Classes
    Apply
  51. def discardRight[A, B](fa: ⇒ F[A], fb: ⇒ F[B]): F[A]

    Permalink

    Combine fa and fb according to Apply[F] with a function that discards the B(s)

    Combine fa and fb according to Apply[F] with a function that discards the B(s)

    Definition Classes
    Apply
  52. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  54. def filterM[A](l: IList[A])(f: (A) ⇒ F[Boolean]): F[IList[A]]

    Permalink

    Filter l according to an applicative predicate.

    Filter l according to an applicative predicate.

    Definition Classes
    Applicative
  55. def filterM[A](l: List[A])(f: (A) ⇒ F[Boolean]): F[List[A]]

    Permalink

    Filter l according to an applicative predicate.

    Filter l according to an applicative predicate.

    Definition Classes
    Applicative
  56. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  57. def flip: Applicative[F]

    Permalink

    An Applicative for F in which effects happen in the opposite order.

    An Applicative for F in which effects happen in the opposite order.

    Definition Classes
    ApplicativeApply
  58. def forever[A, B](fa: F[A]): F[B]

    Permalink

    Repeats an applicative action infinitely

    Repeats an applicative action infinitely

    Definition Classes
    Apply
  59. def fpair[A](fa: F[A]): F[(A, A)]

    Permalink

    Twin all As in fa.

    Twin all As in fa.

    Definition Classes
    Functor
  60. def fproduct[A, B](fa: F[A])(f: (A) ⇒ B): F[(A, B)]

    Permalink

    Pair all As in fa with the result of function application.

    Pair all As in fa with the result of function application.

    Definition Classes
    Functor
  61. def functorLaw: FunctorLaw

    Permalink
    Definition Classes
    Functor
  62. val functorSyntax: FunctorSyntax[F]

    Permalink
    Definition Classes
    Functor
  63. def gather[A](fs: IList[F[A]]): F[IList[A]]

    Permalink

    Nondeterministically gather results from the given sequence of actions.

    Nondeterministically gather results from the given sequence of actions. This function is the nondeterministic analogue of sequence and should behave identically to sequence so long as there is no interaction between the effects being gathered. However, unlike sequence, which decides on a total order of effects, the effects in a gather are unordered with respect to each other.

    Although the effects are unordered, we ensure the order of results matches the order of the input sequence. Also see gatherUnordered.

  64. def gather1[A](fs: NonEmptyList[F[A]]): F[NonEmptyList[A]]

    Permalink
  65. def gatherUnordered[A](fs: IList[F[A]]): F[IList[A]]

    Permalink

    Nondeterministically gather results from the given sequence of actions to a list.

    Nondeterministically gather results from the given sequence of actions to a list. Same as calling reduceUnordered with the List Monoid.

    To preserve the order of the output list while allowing nondetermininstic ordering of effects, use gather.

  66. def gatherUnordered1[A](fs: NonEmptyList[F[A]]): F[NonEmptyList[A]]

    Permalink
  67. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  69. def icompose[G[_]](implicit G0: Contravariant[G]): Contravariant[[α]F[G[α]]]

    Permalink

    The composition of Functor F and Contravariant G, [x]F[G[x]], is contravariant.

    The composition of Functor F and Contravariant G, [x]F[G[x]], is contravariant.

    Definition Classes
    Functor
  70. def ifM[B](value: F[Boolean], ifTrue: ⇒ F[B], ifFalse: ⇒ F[B]): F[B]

    Permalink

    if lifted into a binding.

    if lifted into a binding. Unlike lift3((t,c,a)=>if(t)c else a), this will only include context from the chosen of ifTrue and ifFalse, not the other.

    Definition Classes
    Bind
  71. val invariantApplicativeSyntax: InvariantApplicativeSyntax[F]

    Permalink
    Definition Classes
    InvariantApplicative
  72. def invariantFunctorLaw: InvariantFunctorLaw

    Permalink
    Definition Classes
    InvariantFunctor
  73. val invariantFunctorSyntax: InvariantFunctorSyntax[F]

    Permalink
    Definition Classes
    InvariantFunctor
  74. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  75. def iterateUntil[A](f: F[A])(p: (A) ⇒ Boolean): F[A]

    Permalink

    Execute an action repeatedly until its result satisfies the given predicate and return that result, discarding all others.

    Execute an action repeatedly until its result satisfies the given predicate and return that result, discarding all others.

    Definition Classes
    Monad
  76. def iterateWhile[A](f: F[A])(p: (A) ⇒ Boolean): F[A]

    Permalink

    Execute an action repeatedly until its result fails to satisfy the given predicate and return that result, discarding all others.

    Execute an action repeatedly until its result fails to satisfy the given predicate and return that result, discarding all others.

    Definition Classes
    Monad
  77. def join[A](ffa: F[F[A]]): F[A]

    Permalink

    Sequence the inner F of FFA after the outer F, forming a single F[A].

    Sequence the inner F of FFA after the outer F, forming a single F[A].

    Definition Classes
    Bind
  78. def lift[A, B](f: (A) ⇒ B): (F[A]) ⇒ F[B]

    Permalink

    Lift f into F.

    Lift f into F.

    Definition Classes
    Functor
  79. def lift10[A, B, C, D, E, FF, G, H, I, J, R](f: (A, B, C, D, E, FF, G, H, I, J) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  80. def lift11[A, B, C, D, E, FF, G, H, I, J, K, R](f: (A, B, C, D, E, FF, G, H, I, J, K) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J], F[K]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  81. def lift12[A, B, C, D, E, FF, G, H, I, J, K, L, R](f: (A, B, C, D, E, FF, G, H, I, J, K, L) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J], F[K], F[L]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  82. def lift2[A, B, C](f: (A, B) ⇒ C): (F[A], F[B]) ⇒ F[C]

    Permalink
    Definition Classes
    Apply
  83. def lift3[A, B, C, D](f: (A, B, C) ⇒ D): (F[A], F[B], F[C]) ⇒ F[D]

    Permalink
    Definition Classes
    Apply
  84. def lift4[A, B, C, D, E](f: (A, B, C, D) ⇒ E): (F[A], F[B], F[C], F[D]) ⇒ F[E]

    Permalink
    Definition Classes
    Apply
  85. def lift5[A, B, C, D, E, R](f: (A, B, C, D, E) ⇒ R): (F[A], F[B], F[C], F[D], F[E]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  86. def lift6[A, B, C, D, E, FF, R](f: (A, B, C, D, E, FF) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  87. def lift7[A, B, C, D, E, FF, G, R](f: (A, B, C, D, E, FF, G) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  88. def lift8[A, B, C, D, E, FF, G, H, R](f: (A, B, C, D, E, FF, G, H) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  89. def lift9[A, B, C, D, E, FF, G, H, I, R](f: (A, B, C, D, E, FF, G, H, I) ⇒ R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I]) ⇒ F[R]

    Permalink
    Definition Classes
    Apply
  90. def liftReducer[A, B](implicit r: Reducer[A, B]): Reducer[F[A], F[B]]

    Permalink
    Definition Classes
    Apply
  91. def map[A, B](fa: F[A])(f: (A) ⇒ B): F[B]

    Permalink

    Lift f into F and apply to F[A].

    Lift f into F and apply to F[A].

    Definition Classes
    MonadApplicativeFunctor
  92. def mapBoth[A, B, C](a: F[A], b: F[B])(f: (A, B) ⇒ C): F[C]

    Permalink

    Apply a function to the results of a and b, nondeterminstically ordering their effects.

  93. def mapply[A, B](a: A)(f: F[(A) ⇒ B]): F[B]

    Permalink

    Lift apply(a), and apply the result to f.

    Lift apply(a), and apply the result to f.

    Definition Classes
    Functor
  94. def monadLaw: MonadLaw

    Permalink
    Definition Classes
    Monad
  95. val monadSyntax: MonadSyntax[F]

    Permalink
    Definition Classes
    Monad
  96. def mproduct[A, B](fa: F[A])(f: (A) ⇒ F[B]): F[(A, B)]

    Permalink

    Pair A with the result of function application.

    Pair A with the result of function application.

    Definition Classes
    Bind
  97. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  98. def nmap2[A, B, C](a: F[A], b: F[B])(f: (A, B) ⇒ C): F[C]

    Permalink

    Apply a function to 2 results, nondeterminstically ordering their effects, alias of mapBoth

  99. def nmap3[A, B, C, R](a: F[A], b: F[B], c: F[C])(f: (A, B, C) ⇒ R): F[R]

    Permalink

    Apply a function to 3 results, nondeterminstically ordering their effects

  100. def nmap4[A, B, C, D, R](a: F[A], b: F[B], c: F[C], d: F[D])(f: (A, B, C, D) ⇒ R): F[R]

    Permalink

    Apply a function to 4 results, nondeterminstically ordering their effects

  101. def nmap5[A, B, C, D, E, R](a: F[A], b: F[B], c: F[C], d: F[D], e: F[E])(f: (A, B, C, D, E) ⇒ R): F[R]

    Permalink

    Apply a function to 5 results, nondeterminstically ordering their effects

  102. def nmap6[A, B, C, D, E, FF, R](a: F[A], b: F[B], c: F[C], d: F[D], e: F[E], ff: F[FF])(f: (A, B, C, D, E, FF) ⇒ R): F[R]

    Permalink

    Apply a function to 6 results, nondeterminstically ordering their effects

  103. val nondeterminismSyntax: NondeterminismSyntax[F]

    Permalink
  104. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  105. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  106. def par: Par[F]

    Permalink

    A lawful implementation of this that is isomorphic up to the methods defined on Applicative allowing for optimised parallel implementations that would otherwise violate laws of more specific typeclasses (e.g.

    A lawful implementation of this that is isomorphic up to the methods defined on Applicative allowing for optimised parallel implementations that would otherwise violate laws of more specific typeclasses (e.g. Monad).

    Definition Classes
    Applicative
  107. def parallel: Applicative[[α]TagKind.@@[F[α], Parallel]]

    Permalink
  108. def plusA[A](x: ⇒ F[A], y: ⇒ F[A])(implicit sa: Semigroup[A]): F[A]

    Permalink

    Semigroups can be added within an Applicative

    Semigroups can be added within an Applicative

    Definition Classes
    Applicative
  109. def product[G[_]](implicit G0: Monad[G]): Monad[[α](F[α], G[α])]

    Permalink

    The product of Monad F and G, [x](F[x], G[x]]), is a Monad

    The product of Monad F and G, [x](F[x], G[x]]), is a Monad

    Definition Classes
    Monad
  110. def product[G[_]](implicit G0: Bind[G]): Bind[[α](F[α], G[α])]

    Permalink

    The product of Bind F and G, [x](F[x], G[x]]), is a Bind

    The product of Bind F and G, [x](F[x], G[x]]), is a Bind

    Definition Classes
    Bind
  111. def product[G[_]](implicit G0: Applicative[G]): Applicative[[α](F[α], G[α])]

    Permalink

    The product of Applicatives F and G, [x](F[x], G[x]]), is an Applicative

    The product of Applicatives F and G, [x](F[x], G[x]]), is an Applicative

    Definition Classes
    Applicative
  112. def product[G[_]](implicit G0: Apply[G]): Apply[[α](F[α], G[α])]

    Permalink

    The product of Applys F and G, [x](F[x], G[x]]), is a Apply

    The product of Applys F and G, [x](F[x], G[x]]), is a Apply

    Definition Classes
    Apply
  113. def product[G[_]](implicit G0: Functor[G]): Functor[[α](F[α], G[α])]

    Permalink

    The product of Functors F and G, [x](F[x], G[x]]), is a Functor

    The product of Functors F and G, [x](F[x], G[x]]), is a Functor

    Definition Classes
    Functor
  114. final def pure[A](a: ⇒ A): F[A]

    Permalink
    Definition Classes
    Applicative
  115. def reduceUnordered[A, M](fs: IList[F[A]])(implicit R: Reducer[A, M], M: Monoid[M]): F[M]

    Permalink

    Nondeterministically gather results from the given sequence of actions.

    Nondeterministically gather results from the given sequence of actions. The result will be arbitrarily reordered, depending on the order results come back in a sequence of calls to chooseAny.

  116. def replicateM[A](n: Int, fa: F[A]): F[IList[A]]

    Permalink

    Performs the action n times, returning the list of results.

    Performs the action n times, returning the list of results.

    Definition Classes
    Applicative
  117. def replicateM_[A](n: Int, fa: F[A]): F[Unit]

    Permalink

    Performs the action n times, returning nothing.

    Performs the action n times, returning nothing.

    Definition Classes
    Applicative
  118. def sequence[A, G[_]](as: G[F[A]])(implicit arg0: Traverse[G]): F[G[A]]

    Permalink
    Definition Classes
    Applicative
  119. def sequence1[A, G[_]](as: G[F[A]])(implicit arg0: Traverse1[G]): F[G[A]]

    Permalink
    Definition Classes
    Apply
  120. def strengthL[A, B](a: A, f: F[B]): F[(A, B)]

    Permalink

    Inject a to the left of Bs in f.

    Inject a to the left of Bs in f.

    Definition Classes
    Functor
  121. def strengthR[A, B](f: F[A], b: B): F[(A, B)]

    Permalink

    Inject b to the right of As in f.

    Inject b to the right of As in f.

    Definition Classes
    Functor
  122. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  123. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  124. def traverse[A, G[_], B](value: G[A])(f: (A) ⇒ F[B])(implicit G: Traverse[G]): F[G[B]]

    Permalink
    Definition Classes
    Applicative
  125. def traverse1[A, G[_], B](value: G[A])(f: (A) ⇒ F[B])(implicit G: Traverse1[G]): F[G[B]]

    Permalink
    Definition Classes
    Apply
  126. def tuple2[A, B](fa: ⇒ F[A], fb: ⇒ F[B]): F[(A, B)]

    Permalink
    Definition Classes
    Apply
  127. def tuple3[A, B, C](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C]): F[(A, B, C)]

    Permalink
    Definition Classes
    Apply
  128. def tuple4[A, B, C, D](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D]): F[(A, B, C, D)]

    Permalink
    Definition Classes
    Apply
  129. def tuple5[A, B, C, D, E](fa: ⇒ F[A], fb: ⇒ F[B], fc: ⇒ F[C], fd: ⇒ F[D], fe: ⇒ F[E]): F[(A, B, C, D, E)]

    Permalink
    Definition Classes
    Apply
  130. def unfoldrOpt[S, A, B](seed: S)(f: (S) ⇒ Maybe[(F[A], S)])(implicit R: Reducer[A, B]): Maybe[F[B]]

    Permalink

    Unfold seed to the right and combine effects left-to-right, using the given Reducer to combine values.

    Unfold seed to the right and combine effects left-to-right, using the given Reducer to combine values. Implementations may override this method to not unfold more than is necessary to determine the result.

    Definition Classes
    Apply
  131. def unlessM[A](cond: Boolean)(f: ⇒ F[A]): F[Unit]

    Permalink

    Returns the given argument if cond is false, otherwise, unit lifted into F.

    Returns the given argument if cond is false, otherwise, unit lifted into F.

    Definition Classes
    Applicative
  132. def untilM[G[_], A](f: F[A], cond: ⇒ F[Boolean])(implicit G: MonadPlus[G]): F[G[A]]

    Permalink

    Execute an action repeatedly until the Boolean condition returns true.

    Execute an action repeatedly until the Boolean condition returns true. The condition is evaluated after the loop body. Collects results into an arbitrary MonadPlus value, such as a List.

    Definition Classes
    Monad
  133. def untilM_[A](f: F[A], cond: ⇒ F[Boolean]): F[Unit]

    Permalink

    Execute an action repeatedly until the Boolean condition returns true.

    Execute an action repeatedly until the Boolean condition returns true. The condition is evaluated after the loop body. Discards results.

    Definition Classes
    Monad
  134. def void[A](fa: F[A]): F[Unit]

    Permalink

    Empty fa of meaningful pure values, preserving its structure.

    Empty fa of meaningful pure values, preserving its structure.

    Definition Classes
    Functor
  135. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  138. def whenM[A](cond: Boolean)(f: ⇒ F[A]): F[Unit]

    Permalink

    Returns the given argument if cond is true, otherwise, unit lifted into F.

    Returns the given argument if cond is true, otherwise, unit lifted into F.

    Definition Classes
    Applicative
  139. def whileM[G[_], A](p: F[Boolean], body: ⇒ F[A])(implicit G: MonadPlus[G]): F[G[A]]

    Permalink

    Execute an action repeatedly as long as the given Boolean expression returns true.

    Execute an action repeatedly as long as the given Boolean expression returns true. The condition is evalated before the loop body. Collects the results into an arbitrary MonadPlus value, such as a List.

    Definition Classes
    Monad
  140. def whileM_[A](p: F[Boolean], body: ⇒ F[A]): F[Unit]

    Permalink

    Execute an action repeatedly as long as the given Boolean expression returns true.

    Execute an action repeatedly as long as the given Boolean expression returns true. The condition is evaluated before the loop body. Discards results.

    Definition Classes
    Monad
  141. def widen[A, B](fa: F[A])(implicit ev: <~<[A, B]): F[B]

    Permalink

    Functors are covariant by nature, so we can treat an F[A] as an F[B] if A is a subtype of B.

    Functors are covariant by nature, so we can treat an F[A] as an F[B] if A is a subtype of B.

    Definition Classes
    Functor
  142. final def xderiving0[Z](z: ⇒ Z): F[Z]

    Permalink
    Definition Classes
    InvariantApplicative
  143. final def xderiving1[Z, A1](f: (A1) ⇒ Z, g: (Z) ⇒ A1)(implicit a1: F[A1]): F[Z]

    Permalink
    Definition Classes
    InvariantApplicative
  144. final def xderiving2[Z, A1, A2](f: (A1, A2) ⇒ Z, g: (Z) ⇒ (A1, A2))(implicit a1: F[A1], a2: F[A2]): F[Z]

    Permalink
    Definition Classes
    InvariantApplicative
  145. final def xderiving3[Z, A1, A2, A3](f: (A1, A2, A3) ⇒ Z, g: (Z) ⇒ (A1, A2, A3))(implicit a1: F[A1], a2: F[A2], a3: F[A3]): F[Z]

    Permalink
    Definition Classes
    InvariantApplicative
  146. final def xderiving4[Z, A1, A2, A3, A4](f: (A1, A2, A3, A4) ⇒ Z, g: (Z) ⇒ (A1, A2, A3, A4))(implicit a1: F[A1], a2: F[A2], a3: F[A3], a4: F[A4]): F[Z]

    Permalink
    Definition Classes
    InvariantApplicative
  147. def xmap[A, B](fa: F[A], f: (A) ⇒ B, g: (B) ⇒ A): F[B]

    Permalink

    Converts ma to a value of type F[B] using the provided functions f and g.

    Converts ma to a value of type F[B] using the provided functions f and g.

    Definition Classes
    FunctorInvariantFunctor
  148. def xmapb[A, B](ma: F[A])(b: Bijection[A, B]): F[B]

    Permalink

    Converts ma to a value of type F[B] using the provided bijection.

    Converts ma to a value of type F[B] using the provided bijection.

    Definition Classes
    InvariantFunctor
  149. def xmapi[A, B](ma: F[A])(iso: Isomorphism.<=>[A, B]): F[B]

    Permalink

    Converts ma to a value of type F[B] using the provided isomorphism.

    Converts ma to a value of type F[B] using the provided isomorphism.

    Definition Classes
    InvariantFunctor
  150. def xproduct0[Z](z: ⇒ Z): F[Z]

    Permalink
    Definition Classes
    ApplicativeInvariantApplicative
  151. def xproduct1[Z, A1](a1: ⇒ F[A1])(f: (A1) ⇒ Z, g: (Z) ⇒ A1): F[Z]

    Permalink
    Definition Classes
    ApplicativeInvariantApplicative
  152. def xproduct2[Z, A1, A2](a1: ⇒ F[A1], a2: ⇒ F[A2])(f: (A1, A2) ⇒ Z, g: (Z) ⇒ (A1, A2)): F[Z]

    Permalink
    Definition Classes
    ApplicativeInvariantApplicative
  153. def xproduct3[Z, A1, A2, A3](a1: ⇒ F[A1], a2: ⇒ F[A2], a3: ⇒ F[A3])(f: (A1, A2, A3) ⇒ Z, g: (Z) ⇒ (A1, A2, A3)): F[Z]

    Permalink
    Definition Classes
    ApplicativeInvariantApplicative
  154. def xproduct4[Z, A1, A2, A3, A4](a1: ⇒ F[A1], a2: ⇒ F[A2], a3: ⇒ F[A3], a4: ⇒ F[A4])(f: (A1, A2, A3, A4) ⇒ Z, g: (Z) ⇒ (A1, A2, A3, A4)): F[Z]

    Permalink
    Definition Classes
    ApplicativeInvariantApplicative

Inherited from Monad[F]

Inherited from Bind[F]

Inherited from Applicative[F]

Inherited from InvariantApplicative[F]

Inherited from Apply[F]

Inherited from Functor[F]

Inherited from InvariantFunctor[F]

Inherited from AnyRef

Inherited from Any

Ungrouped