package data
- Alphabetic
- By Inheritance
- data
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
sealed abstract
class
AppFunc[F[_], A, B] extends Func[F, A, B]
An implementation of Func that's specialized to Applicative.
-
final
case class
Cokleisli[F[_], A, B](run: (F[A]) ⇒ B) extends Product with Serializable
Represents a function
F[A] => B
. -
final
case class
Const[A, B](getConst: A) extends Product with Serializable
Const is a phantom type, it does not contain a value of its second type parameter
B
Const can be seen as a type level version ofFunction.const[A, B]: A => B => A
-
final
case class
EitherK[F[_], G[_], A](run: Either[F[A], G[A]]) extends Product with Serializable
F
on the left andG
on the right ofscala.util.Either
.F
on the left andG
on the right ofscala.util.Either
.- run
The underlying
scala.util.Either
.
- type EitherNel[+E, +A] = Either[NonEmptyList[E], A]
-
final
case class
EitherT[F[_], A, B](value: F[Either[A, B]]) extends Product with Serializable
Transformer for
Either
, allowing the effect of an arbitrary type constructorF
to be combined with the fail-fast effect ofEither
.Transformer for
Either
, allowing the effect of an arbitrary type constructorF
to be combined with the fail-fast effect ofEither
.EitherT[F, A, B]
wraps a value of typeF[Either[A, B]]
. AnF[C]
can be lifted in toEitherT[F, A, C]
viaEitherT.right
, and lifted in to aEitherT[F, C, B]
viaEitherT.left
. -
sealed abstract
class
Func[F[_], A, B] extends AnyRef
Func is a function
A => F[B]
.Func is a function
A => F[B]
. - type IRWST[F[_], E, L, SA, SB, A] = IndexedReaderWriterStateT[F, E, L, SA, SB, A]
-
final
case class
IdT[F[_], A](value: F[A]) extends Product with Serializable
IdT[F[_], A]
is the identity monad transformer. -
final
class
IndexedReaderWriterStateT[F[_], E, L, SA, SB, A] extends Serializable
Represents a stateful computation in a context
F[_]
, from stateSA
to stateSB
, with an initial environmentE
, an accumulated logL
and a resultA
.Represents a stateful computation in a context
F[_]
, from stateSA
to stateSB
, with an initial environmentE
, an accumulated logL
and a resultA
.In other words, it is a pre-baked stack of
ReaderT[F, E, A]
,WriterT[F, L, A]
andIndexedStateT[F, SA, SB, A]
. -
final
class
IndexedStateT[F[_], SA, SB, A] extends Serializable
IndexedStateT[F, SA, SB, A]
is a stateful computation in a contextF
yielding a value of typeA
.IndexedStateT[F, SA, SB, A]
is a stateful computation in a contextF
yielding a value of typeA
. The state transitions from a value of typeSA
to a value of typeSB
.Note that for the
SA != SB
case, this is an indexed monad. Indexed monads are monadic type constructors annotated by an additional type for effect tracking purposes. In this case, the annotation tracks the initial state and the resulting state.Given
IndexedStateT[F, S, S, A]
, this yields theStateT[F, S, A]
monad. -
sealed abstract
class
Ior[+A, +B] extends Product with Serializable
Represents a right-biased disjunction that is either an
A
, or aB
, or both anA
and aB
.Represents a right-biased disjunction that is either an
A
, or aB
, or both anA
and aB
.An instance of
A Ior B
is one of:A Ior B
is similar toscala.util.Either[A, B]
, except that it can represent the simultaneous presence of anA
and aB
. It is right-biased so methods such asmap
andflatMap
operate on theB
value. Some methods, likeflatMap
, handle the presence of two Both values using aSemigroup[A]
, while other methods, like toEither, ignore theA
value in a Both.A Ior B
is isomorphic toEither[Either[A, B], (A, B)]
, but provides methods biased towardB
values, regardless of whether theB
values appear in a Right or a Both. The isomorphicscala.util.Either
form can be accessed via the unwrap method. - type IorNel[+B, +A] = Ior[NonEmptyList[B], A]
- final case class IorT[F[_], A, B](value: F[Ior[A, B]]) extends Product with Serializable
-
final
case class
Kleisli[F[_], A, B](run: (A) ⇒ F[B]) extends Product with Serializable
Represents a function
A => F[B]
. -
final
case class
Nested[F[_], G[_], A](value: F[G[A]]) extends Product with Serializable
Similar to cats.data.Tuple2K, but for nested composition.
Similar to cats.data.Tuple2K, but for nested composition.
For instance, since both
List
andOption
have aFunctor
, then so doesList[Option[_]]
. This is represented by this data type via the instantiationNested[List, Option, ?]
.scala> import cats.Functor scala> import cats.data.Nested scala> import cats.implicits._ scala> val listOption: List[Option[Int]] = List(Some(1), None) scala> val f: Int => String = i => (i * 2).toString scala> Functor[List].map(listOption)(opt => opt.map(f)) res0: List[Option[String]] = List(Some(2), None) scala> val nested: Nested[List, Option, Int] = Nested(listOption) scala> val result: Nested[List, Option, String] = Functor[Nested[List, Option, ?]].map(nested)(f) scala> result.value res1: List[Option[String]] = List(Some(2), None)
-
final
case class
NonEmptyList[+A](head: A, tail: List[A]) extends Product with Serializable
A data type which represents a non empty list of A, with single element (head) and optional structure (tail).
- type NonEmptyMap[K, +A] = data.NonEmptyMapImpl.Type[K, A]
- sealed class NonEmptyMapOps[K, A] extends AnyRef
- type NonEmptySet[A] = data.NonEmptySetImpl.Type[A]
- sealed class NonEmptySetOps[A] extends AnyRef
- type NonEmptyStream[A] = OneAnd[Stream, A]
-
final
class
NonEmptyVector[+A] extends AnyVal
A data type which represents a
Vector
guaranteed to contain at least one element.A data type which represents a
Vector
guaranteed to contain at least one element.
Note that the constructor isprivate
to prevent accidental construction of an emptyNonEmptyVector
. However, due to https://issues.scala-lang.org/browse/SI-6601, on Scala 2.10, this may be bypassed due to a compiler bug. -
final
case class
OneAnd[F[_], A](head: A, tail: F[A]) extends Product with Serializable
A data type which represents a single element (head) and some other structure (tail).
A data type which represents a single element (head) and some other structure (tail). As we have done in package.scala, this can be used to represent a Stream which is guaranteed to not be empty:
type NonEmptyStream[A] = OneAnd[Stream, A]
-
final
case class
OptionT[F[_], A](value: F[Option[A]]) extends Product with Serializable
OptionT[F[_], A]
is a light wrapper on anF[Option[A]]
with some convenient methods for working with this nested structure.OptionT[F[_], A]
is a light wrapper on anF[Option[A]]
with some convenient methods for working with this nested structure.It may also be said that
OptionT
is a monad transformer forOption
.For more information, see the documentation.
- type RWS[E, L, S, A] = IndexedReaderWriterStateT[Eval, E, L, S, S, A]
- type RWST[F[_], E, L, S, A] = IndexedReaderWriterStateT[F, E, L, S, S, A]
- type Reader[A, B] = Kleisli[Id, A, B]
- type ReaderT[F[_], A, B] = Kleisli[F, A, B]
- type ReaderWriterState[E, L, S, A] = IndexedReaderWriterStateT[Eval, E, L, S, S, A]
-
type
ReaderWriterStateT[F[_], E, L, S, A] = IndexedReaderWriterStateT[F, E, L, S, S, A]
Represents a stateful computation in a context
F[_]
, over stateS
, with an initial environmentE
, an accumulated logL
and a resultA
. - type State[S, A] = IndexedStateT[Eval, S, S, A]
-
type
StateT[F[_], S, A] = IndexedStateT[F, S, S, A]
StateT[F, S, A]
is similar toKleisli[F, S, A]
in that it takes anS
argument and produces anA
value wrapped inF
.StateT[F, S, A]
is similar toKleisli[F, S, A]
in that it takes anS
argument and produces anA
value wrapped inF
. However, it also produces anS
value representing the updated state (which is wrapped in theF
context along with theA
value. -
final
case class
Tuple2K[F[_], G[_], A](first: F[A], second: G[A]) extends Product with Serializable
Tuple2K is a product to two independent functor values.
Tuple2K is a product to two independent functor values.
- sealed abstract class Validated[+E, +A] extends Product with Serializable
- type ValidatedNel[+E, +A] = Validated[NonEmptyList[E], A]
- type Writer[L, V] = WriterT[Id, L, V]
- final case class WriterT[F[_], L, V](run: F[(L, V)]) extends Product with Serializable
- final class ZipList[A] extends AnyVal
- final class ZipStream[A] extends AnyVal
- final class ZipVector[A] extends AnyVal
Value Members
- val IRWST: IndexedReaderWriterStateT.type
- val NonEmptyMap: NonEmptyMapImpl.type
- val NonEmptySet: NonEmptySetImpl.type
- def NonEmptyStream[A](head: A, tail: A*): NonEmptyStream[A]
- def NonEmptyStream[A](head: A, tail: Stream[A] = Stream.empty): NonEmptyStream[A]
- val RWS: ReaderWriterState.type
- val RWST: ReaderWriterStateT.type
- val ReaderT: Kleisli.type
- object AppFunc extends AppFuncInstances
- object Cokleisli extends CokleisliInstances with Serializable
- object Const extends ConstInstances with Serializable
- object EitherK extends EitherKInstances with Serializable
- object EitherT extends EitherTInstances with Serializable
- object Func extends FuncInstances
- object IdT extends IdTInstances with Serializable
- object IndexedReaderWriterStateT extends IRWSTInstances with CommonIRWSTConstructors with Serializable
- object IndexedStateT extends IndexedStateTInstances with CommonStateTConstructors with Serializable
- object Ior extends IorInstances with IorFunctions with Serializable
- object IorT extends IorTInstances with Serializable
- object Kleisli extends KleisliInstances with KleisliFunctions with KleisliExplicitInstances with Serializable
- object Nested extends NestedInstances with Serializable
- object NonEmptyList extends NonEmptyListInstances with Serializable
- object NonEmptyVector extends NonEmptyVectorInstances with Serializable
- object OneAnd extends OneAndInstances with Serializable
- object OptionT extends OptionTInstances with Serializable
- object Reader
- object ReaderWriterState extends RWSFunctions
- object ReaderWriterStateT extends RWSTFunctions
- object State extends StateFunctions
- object StateT extends StateTFunctions
- object Tuple2K extends Tuple2KInstances with Serializable
- object Validated extends ValidatedInstances with ValidatedFunctions with Serializable
- object Writer
- object WriterT extends WriterTInstances with WriterTFunctions with Serializable
- object ZipList
- object ZipStream
- object ZipVector