Tag a type T
with Tag
.
Tag a type T
with Tag
. The resulting type is a subtype of T
.
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'
Applicative Functor, described in Applicative Programming with Effects
Burkhard-Keller trees provide an implementation of sets which apart
from the ordinary operations also has an approximate member search,
allowing you to search for elements that are of a distance n
from
the element you are searching for.
A constrained transformation natural in both sides of a bifunctor
An scalaz.Apply functor, where a lifted function can introduce new values _and_ new functor context to be incorporated into the lift context.
A cofree comonad for some functor S
, i.
A constrained natural transformation
A Cord
is a purely functional data structure for efficiently
storing and manipulating String
s that are potentially very long.
Corepresentable functors
Difference lists: a data structure for O(1)
append on lists.
An algebraic data type representing the digits 0 - 9
Represents a computation of type F[A \/ B]
.
Endomorphisms.
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 universally quantified value
A free operational monad for some functor S
.
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.
A group extends scalaz.Monoid with an inverse element, such that append(a, inverse(a)) === zero
.
An efficient, asymptotically optimal, implementation of priority queues extended with support for efficient size.
Mixed into object Id
in the package object scalaz.
An immutable wrapper for arrays
Indexed sequences, based on scalaz.FingerTree
Random access through an integer index.
Given Injective[Foo]: If type Foo[A] = Foo[B] then A ~ B
Represents a function A => M[B]
.
Leibnizian equality: a better =:=
A Lens, offering a purely functional means to access and retrieve
a field of type B
in a record of type A
.
Liskov substitutability: A better <:<
ListT monad transformer.
Useful metric spaces include the manhattan distance between two points, the Levenshtein edit distance between two strings, the number of edges in the shortest path between two nodes in an undirected graph and the Hamming distance between two binary strings.
Monad, an scalaz.Applicative that also supports scalaz.Bind, circumscribed by the monad laws.
This trait establishes a partial order among monads.
Provides an identity element (zero
) to the binary append
operation in scalaz.Semigroup, subject to the monoid laws.
Call by name
Call by need
A singly-linked list that is guaranteed to be non-empty.
OptionT monad transformer.
Ordered sequences, based on scalaz.FingerTree
Partial Lens, offering a purely functional means to access and retrieve
an optional field of type B
in a record of type A
.
Universally quantified scalaz.Semigroup.
Universally quantified scalaz.Monoid.
A Reducer[C,M]
is a scalaz.Monoid[M]
that maps
values of type C
through unit
to values of type M
.
Representable functors
An associative binary operation, circumscribed by type and the semigroup laws.
A state transition, representing a function S => (A, S)
.
StateT Monad Transformer
StreamT monad transformer.
Idiomatic traversal of a structure, as described in The Essense of the Iterator Pattern.
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]
.
Unapply a covariant type constructor, maintaining the covariance
Union types using Curry-Howard isomorphism
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.
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 disjunction.
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.scalaz.std
Implicit conversions and wrapper classes that provide a more convenient syntax for accessing the functionality of the library are in scalaz.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[A \/ B]