    -----------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.X11.Xlib
    -- Copyright   :  (c) Alastair Reid, 1999-2003
    -- License     :  BSD-style (see the file libraries/base/LICENSE)
    --
    -- Maintainer  :  libraries@haskell.org
    -- Stability   :  provisional
    -- Portability :  portable
    --
    -- A collection of FFI declarations for interfacing with Xlib.
    --
    -- The library aims to provide a direct translation of the X
    -- binding into Haskell so the most important documentation you
    -- should read is /The Xlib Programming Manual/, available online at
    -- <http://tronche.com/gui/x/xlib/>.  Let me say that again because
    -- it is very important.  Get hold of this documentation and read it:
    -- it tells you almost everything you need to know to use this library.
    --
    -----------------------------------------------------------------------------

    module Graphics.X11.Xlib
    	( -- * Conventions
    	  -- $conventions

    	  -- * Types
    	  module Graphics.X11.Types,
              -- module Graphics.X11.Xlib.Types,
    	  Display(..), Screen, Visual, GC, SetWindowAttributes, VisualInfo(..),
    	  Point(..), Rectangle(..), Arc(..), Segment(..), Color(..),
    	  Pixel, Position, Dimension, Angle, ScreenNumber, Buffer,

    	  -- * X11 library functions
              module Graphics.X11.Xlib.Event,
              module Graphics.X11.Xlib.Display,
              module Graphics.X11.Xlib.Screen,
              module Graphics.X11.Xlib.Window,
              module Graphics.X11.Xlib.Context,
              module Graphics.X11.Xlib.Color,
              module Graphics.X11.Xlib.Cursor,
              module Graphics.X11.Xlib.Font,
              module Graphics.X11.Xlib.Atom,
              module Graphics.X11.Xlib.Region,
              module Graphics.X11.Xlib.Image,
              module Graphics.X11.Xlib.Misc,

    	) where

    import Graphics.X11.Types
    import Graphics.X11.Xlib.Types
    import Graphics.X11.Xlib.Event
    import Graphics.X11.Xlib.Display
    import Graphics.X11.Xlib.Screen
    import Graphics.X11.Xlib.Window
    import Graphics.X11.Xlib.Context
    import Graphics.X11.Xlib.Color
    import Graphics.X11.Xlib.Cursor
    import Graphics.X11.Xlib.Font
    import Graphics.X11.Xlib.Atom
    import Graphics.X11.Xlib.Region
    import Graphics.X11.Xlib.Image
    import Graphics.X11.Xlib.Misc

    {- $conventions

    In translating the library, we had to change names to conform with
    Haskell's lexical syntax: function names and names of constants must start
    with a lowercase letter; type names must start with an uppercase letter.
    The case of the remaining letters is unchanged.

    In addition, we chose to take advantage of Haskell's module system to
    allow us to drop common prefixes (@X@, @XA_@, etc.) attached to X11
    identifiers.

    We named enumeration types so that function types would be easier
    to understand.  For example, we added 'Status', 'WindowClass', etc.
    Note that the types are synonyms for 'Int' so no extra typesafety was
    obtained.

    We consistently raise exceptions when a function returns an error code.
    In practice, this only affects the following functions because most Xlib
    functions do not return error codes: 'allocColor', 'allocNamedColor',
    'fetchBuffer', 'fetchBytes', 'fontFromGC', 'getGeometry', 'getIconName',
    'iconifyWindow', 'loadQueryFont', 'lookupColor', 'openDisplay',
    'parseColor', 'queryBestCursor', 'queryBestSize', 'queryBestStipple',
    'queryBestTile', 'rotateBuffers', 'selectInput', 'storeBuffer',
    'storeBytes', 'withdrawWindow'.

    -}

    ----------------------------------------------------------------
    -- End
    ----------------------------------------------------------------