diagrams-lib- Embedded domain-specific language for declarative graphics

Copyright(c) 2015 diagrams-lib team (see LICENSE)
LicenseBSD-style (see LICENSE)
Safe HaskellNone




This module only contains exports defined in diagrams-lib or diagrams-core. This module can be used if you want to avoid some potential conflicts with other modules, but importing Diagrams.Prelude (which includes re-exports from other packages) is often more convenient.


Core library

The core definitions of transformations, diagrams, backends, and so on.

Standard library

Attributes (color, line style, etc.) and styles.

Alignment of diagrams relative to their envelopes.

Creating and using bounding boxes.

Combining multiple diagrams into one.

Giving concrete locations to translation-invariant things.

Linear and cubic bezier segments.


Parametrization of segments and trails.

Adjusting the length of parameterized objects.

Computing tangent and normal vectors of segments and trails.

Trail-like things.


Cubic splines.

Some additional transformation-related functions, like conjugation of transformations.

Projective transformations and other deformations lacking an inverse.

Giving names to subdiagrams and later retrieving subdiagrams by name.

Envelopes, aka functional bounding regions.

Traces, aka embedded raytracers, for finding points on the boundary of a diagram.

A query is a function that maps points in a vector space to values in some monoid; they can be used to annotate the points of a diagram with some values.

Utilities for working with points.

Utilities for working with size.


Convenience infix operators for working with coordinates.

Directions, distinguished from angles or vectors

A wide range of things (shapes, transformations, combinators) specific to creating two-dimensional diagrams.

Extra things for three-dimensional diagrams.

Tools for making animations.

Various utility definitions.