cairo-core: Cairo Haskell binding (core functions)

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Cairo Haskell binding (core functions). Please checkout cairo-opts for other functions.

[Skip to Readme]


Versions 1.16.3, 1.16.3, 1.16.4, 1.16.5, 1.16.6, 1.16.7
Change log Changelog
Dependencies base (>=4.7 && <5), monad-extras, transformers [details]
License BSD-3-Clause
Copyright None
Author Magicloud
Category Graphics
Home page
Source repo head: git clone
Uploaded by magicloud at 2019-02-02T07:14:33Z



Maintainer's Corner

For package maintainers and hackage trustees

Readme for cairo-core-1.16.3

[back to package description]

Cairo Haskell binding - Core

This is a library for Haskell to use Cairo function straightforwardly. This package only contains non-optional functions (which is not controlled by building flags). Optional functions like surface supporting and font supporting are in "cairo-opts".

The source is inspired by garetxe and cohomology.

Memory safe

All the pointers should be reference/destroy -ed as manual required, if possible. Hopefully I did not miss any part or misunderstand the document.


When making the library, I tried to use more meaningful type name. So one looking at the type signature would know what to do.


A sugar monad wrapping all functions use Context as first parameter, like cairo from gtk2hs does.

Status check

Checking the status of most Cairo objects is necessary, after creation, or a sequence of actions on it. A sugar method with is given for Render. And a method use is given for regular IO monad.