A left disjunction
The coproduct (or free product) of monoids M
and N
.
scalaz.Inject[F, G]
scalaz.Inject[F, G]
A scalaz.NaturalTransformation[G, F].
An immutable map of key/value pairs implemented as a balanced binary tree
Tag a type T
with Tag
.
Tag a type T
with Tag
.
The resulting type is used to discriminate between type class instances.
Credit to Miles Sabin for the idea.
An adjunction formed by two functors F
and G
such that F
is left-adjoint to G
.
An algebraic data type representing the characters 'a' to 'z'
Derive a Semigroup or Monoid instance from a Plus or PlusEmpty.
Derive a Semigroup or Monoid instance from an Apply or Applicative.
Applicative Functor, described in Applicative Programming with Effects
scalaz.Applicative combined with scalaz.PlusEmpty.
scalaz.Applicative without point
.
A scalaz.Category supporting all ordinary functions, as well as combining arrows product-wise.
scalaz.Semigroup which is also idempotent, i.
A constrained transformation natural in both sides of a bifunctor
A function universally quantified over two parameters.
A type giving rise to two unrelated scalaz.Foldables.
A type giving rise to two unrelated scalaz.Functors.
An scalaz.Apply functor, where a lifted function can introduce new values _and_ new functor context to be incorporated into the lift context.
scalaz.Bind capable of using constant stack space when doing recursive binds.
A type giving rise to two unrelated scalaz.Traverses.
A context in which exceptions can be caught and thrown.
scalaz.Compose with identity.
A cofree comonad for some functor S
, i.
A constrained natural transformation
Contravariant functors.
Decomposition of fi.contramap(k)
into its components, as it is
frequently convenient to apply k
separately from sorting or
whatever process with fi
, even when B
is unknown, which is
very common.
F
on the left, and G
on the right, of scalaz.\/.
A Cord
is a purely functional data structure for efficiently
storing and manipulating String
s that are potentially very long.
The corecursive list; i.
Corepresentable functors
The dual view of the Yoneda lemma.
Difference lists: a data structure for O(1)
append on lists.
A Double-ended queue, based on the Bankers Double Ended Queue as described by C.
Implementation of a Discrete Interval Encoding Tree http://web.engr.oregonstate.edu/~erwig/diet/ that is actually implemented using a Vector and is balanced at all times as a result.
An algebraic data type representing the digits 0 - 9
Dual of scalaz.Traverse.
Divide
is the contravariant analogue of scalaz.Apply
Divisible
is the contravariant analogue of scalaz.Applicative
Represents a computation of type F[A \/ B]
.
Endomorphisms.
Endomorphisms have special properties among arrows, so are captured in this newtype.
An scalaz.Orderable with discrete values.
Like scala.collection.immutable.Stream, but doesn't save computed values.
A type safe alternative to universal equality (scala.Any#==
).
Finger trees with leaves of type A and Nodes that are annotated with type V.
A type parameter implying the ability to extract zero or more values of that type.
A scalaz.Foldable where foldMap
is total over semigroups.
A universally quantified value
A free monad for a type constructor S
.
Free applicative functors.
Functors, covariant by nature if not by Scala type.
A Generator[C]
is a container of elements, and which knows how to efficiently apply a scalaz.Reducer
to extract an answer by combining elements.
An efficient, asymptotically optimal, implementation of priority queues extended with support for efficient size.
Safe, invariant alternative to stdlib List
.
Mixed into object Id
in the package object scalaz.
An immutable wrapper for arrays
Indexed sequences, based on scalaz.FingerTree
A monad transformer stack yielding (R, S1) => F[(W, A, S2)]
.
Inject type class as described in "Data types a la carte" (Swierstra 2008).
Given Injective[Foo]: If type Foo[A] = Foo[B] then A ~ B
Unary type constructor that supports an xmap
operation that converts an F[A]
to an F[B]
given
two functions, A => B
and B => A
.
Typeclass that permits testing whether some type with an empty representation is in fact empty.
Represents a function A => M[B]
.
The left Kan extension of H
along G
scala.Either, but with a value by name.
scala.Option, but with a value by name.
scala.Tuple2, but with values by name.
scala.Tuple3, but with values by name.
scala.Tuple4, but with values by name.
Leibnizian equality: a better =:=
A lens that doesn't transform the type of the record.
A lens that doesn't transform the type of the record.
A Lens Family, offering a purely functional means to access and retrieve
a field transitioning from type B1
to type B2
in a record simultaneously
transitioning from type A1
to type A2
.
Liskov substitutability: A better <:<
ListT monad transformer.
An optional value
monad transformer for Maybe
A function memoization strategy.
Monad, an scalaz.Applicative that also supports scalaz.Bind, circumscribed by the monad laws.
This trait establishes a partial order among monads.
The class of monads supporting the operations of scalaz.State.
The class of monads supporting write operations
Class of monad transformers.
Provides an identity element (zero
) to the binary append
operation in scalaz.Semigroup, subject to the monoid laws.
Call by name
A universally quantified function, usually written as F ~> G
,
for symmetry with A => B
.
Call by need
A singly-linked list that is guaranteed to be non-empty.
A context supporting nondeterministic choice.
A generalization of NonEmptyList
to non-List
things.
OptionT monad transformer.
Abstraction over a container/context which may or may not provide a value.
Ordered sequences, based on scalaz.FingerTree
Safer version of scala.math.Ordering.
A ternary marker of how two values relate in an ordering.
A partial lens that doesn't transform the type of the record.
A partial lens that doesn't transform the type of the record.
Partial Lens Families, offering a purely functional means to access and retrieve
an optional field transitioning from type B1
to type B2
in a record that is
simultaneously transitioning from type A1
to type A2
.
Universally quantified scalaz.Semigroup.
Universally quantified scalaz.Monoid.
Strength on a coproduct.
Profunctors are covariant on the right and contravariant on the left.
The right Kan extension of H
along G
A Reducer[C,M]
is a scalaz.Monoid[M]
that maps
values of type C
through unit
to values of type M
.
Representable functors, that is to say, those with isomorphisms to
and from [a](X => a)
.
scalaz.Band which is also commutative, i.
An associative binary operation, circumscribed by type and the semigroup laws.
A typeclass for conversion to textual representation, done via scalaz.Cord for efficiency.
A scalaz.Compose (semigroupoid) permitting products.
A state transition, representing a function S => (S, A)
.
StreamT monad transformer.
Strength on a product.
Idiomatic traversal of a structure, as described in The Essence of the Iterator Pattern.
A scalaz.Traverse where traverse
is total over
scalaz.Applys.
A multi-way tree, also known as a rose tree.
A rose-tree zipper.
Represents a type MA
that has been destructured into as a type constructor M[_]
applied to type A
, along with a corresponding type class instance TC[M]
.
This data type is isomorphic to WriterT
, however, it is NOT a monad.
Represents either:
An scalaz.Validation with a scalaz.NonEmptyList as the failure type.
An scalaz.Validation with a scalaz.NonEmptyList as the failure type.
Useful for accumulating errors through the corresponding scalaz.Applicative instance.
Call by value
View of the left end of a sequence.
View of the right end of a sequence.
The cofree functor generated by F
.
Functors that annihilate each other.
Provides a pointed stream, which is a non-empty zipper-like stream structure that tracks an index (focus) position in a stream.
Represents a disjunction: a result that is either an A
or a B
.
A right disjunction
A scalaz.NaturalTransformation[F, G].
This object was generated by sbt-buildinfo.
Type tags that are used to discriminate between alternative type class instances.
Type Class instances for data structures in the Scala and Java standard libraries.
Implicits to provide a convenient syntax to work with type classes and functions.
Scalaz: Type classes and pure functional data structures for Scala.
This package, scalaz, contains:
Type class instances and other functions related to the Scala and Java standard library are in scalaz.std
Implicit conversions and wrapper classes that provide a more convenient syntax for accessing the functionality of the library are in scalaz.syntax.
Type Classes Index
Data Structures Index
A => A
.Stream
of sub-trees.A => M[B]
, allowing chaining. Also known, and aliased, asscalaz.ReaderT
.F[Option[A]]
F[Maybe[A]]
F[A \/ B]