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.
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 operational monad for some functor 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.
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].
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.
Newtype for strings representing character sets.
(Since version 7.1) Cojoin has been merged into Cobind
Run a side effect once for each A
in the F
.
Random access through an integer index.
Returns a list in order of key insertion.
(Since version 7.1) InsertionMap is deprecated
(Since version 7.1) InsertionMap is deprecated
(Since version 7.1) Each is deprecated
(Since version 7.1) Index is deprecated, use Foldable instead
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.
Ropes or 'heavyweight Strings' are an alternative to Strings.
(Since version 7.1) Rope is deprecated. Use Cord
instead
(Since version 7.1) Rope is deprecated. Use Cord
instead
Union types using Curry-Howard isomorphism
(Since version 7.1) Rope is deprecated. Use Cord
instead
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.
(Since version 7.1) CharSet is deprecated
(Since version 7.1) Cojoin has been merged into Cobind
(Since version 7.1) Each is deprecated
(Since version 7.1) Index is deprecated, use Foldable#index instead
(Since version 7.1) InsertionMap is deprecated
(Since version 7.1) Length is deprecated, use Foldable#length instead
(Since version 7.1) Rope is deprecated. Use Cord
instead
(Since version 7.1) unboxed union types are deprecated
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]