The diagrams package

[Tags:bsd3, library]

An embedded domain-specific language (EDSL) for creating simple diagrams, built on top of the Cairo rendering engine.

[Skip to Readme]


Versions 0.1, 0.2, 0.2.1,,,, 0.2.2,,,, 0.3, 0.4, 0.5, 0.6, 0.7, 0.7.1,, 1.0,, 1.1,, 1.2, 1.3,, 1.4
Change log CHANGES
Dependencies base (>=2 && <4.8), cairo (>=0.9 && <0.11), colour (>=2.2.1 && <2.4), containers (==0.2.*), mtl (>=1.0 && <1.2) [details]
License BSD3
Author Brent Yorgey
Stability experimental
Category Graphics
Home page
Uploaded Fri Sep 25 12:21:10 UTC 2009 by BrentYorgey
Updated Fri Apr 10 20:36:52 UTC 2015 by bergey to revision 1
Distributions LTSHaskell:, NixOS:1.4, Stackage:1.4, Tumbleweed:1.4
Downloads 10725 total (75 in the last 30 days)
4 []
Status Docs not available [build log]
All reported builds failed as of 2016-12-10 [all 6 reports]


  • Graphics
    • Rendering
      • Graphics.Rendering.Diagrams
        • Graphics.Rendering.Diagrams.Attributes
        • Graphics.Rendering.Diagrams.Engine
        • Graphics.Rendering.Diagrams.Layouts
        • Graphics.Rendering.Diagrams.Paths
        • Graphics.Rendering.Diagrams.Shapes
        • Graphics.Rendering.Diagrams.Types


testingTesting modeDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for diagrams

Readme for diagrams-

Graphics.Rendering.Diagrams provides an embedded domain-specific
language (EDSL) for creating simple graphics in a compositional style.

For some examples of use, see .


To install the Diagrams library:

1. Get the dependencies

    The diagrams library uses Haskell bindings to the Cairo vector
    graphics library.  In order to build the diagrams library, you
    will first need the following:

    * The Cairo library itself.  This is probably available through
      your system's package manager and may even already be installed.
      On Ubuntu, for example, it is available from the 'libcairo'

    * The Haskell cairo bindings, which are packaged as part of
      gtk2hs.  Unfortunately, for various technical reasons, gtk2hs is
      not cabalized and cannot be downloaded and installed from
      Hackage.  To get gtk2hs you will need to go to the gtk2hs
      website ( and follow the
      instructions to download and build it.

    * The colour library, which is available from Hackage.  If you use
      the cabal-install build option described below, the colour
      library will be downloaded and installed for you automatically.

2. Build

   * Option 1: use cabal-install

     If you have cabal-install, *after* installing gtk2hs, you can
     install diagrams and the remaining dependencies with

       cabal install diagrams

     Optionally, you can also pass options such as --user
     --prefix=$HOME to install locally.

  * Option 2: manual build

    Once all the dependencies are built and installed, you can build
    and install diagrams as follows:
      runhaskell Setup.lhs configure --prefix=$HOME --user
      runhaskell Setup.lhs build
      runhaskell Setup.lhs install

    (Optionally, you can omit the --prefix and --user arguments to the
    configure step, and run the install step with 'sudo' in order to
    install the library systemwide.)

3. Building Haddock documentation (recommended)

     runhaskell Setup.lhs haddock

   Once the documentation has been built, you can access it by 
   pointing your browser to dist/doc/html/diagrams/index.html.