HGL-3.2.0.2: A simple graphics library based on X11 or Win32

Portability | non-portable (requires concurrency)
Stability | provisional
Maintainer | libraries@haskell.org
Safe Haskell | None

Graphics.HGL.Draw.Monad

Description

The `Draw` monad, with graphical objects as a special case.

Synopsis

- type Graphic = Draw ()
- data Draw a
- ioToDraw :: IO a -> Draw a
- bracket :: Draw a -> (a -> Draw b) -> (a -> Draw c) -> Draw c
- bracket_ :: Draw a -> (a -> Draw b) -> Draw c -> Draw c

# Documentation

type Graphic = Draw ()Source

An abstract representation of an image.

data Draw a Source

Monad for sequential construction of images.

Instances

Monad Draw |
Functor Draw |

ioToDraw :: IO a -> Draw aSource

Embed an `IO` action in a drawing action.

bracket Source

Arguments

:: Draw a | a pre-operation, whose value is passed to the other two components.
-> (a -> Draw b) | a post-operation, to be performed on exit from the bracket, whether normal or by an exception.
-> (a -> Draw c) | the drawing action inside the bracket.
-> Draw c |

Wrap a drawing action in initialization and finalization actions.

bracket_Source

Arguments

:: Draw a | a pre-operation, whose value is passed to the other two components.
-> (a -> Draw b) | a post-operation, to be performed on exit from the bracket, whether normal or by an exception.
-> Draw c | the drawing action inside the bracket.
-> Draw c |

A variant of `bracket` in which the inner drawing action does not use the result of the pre-operation.