[[project @ 2003-05-22 14:16:41 by reid] reid**20030522141641 Began sketching out documentation ] { adddir ./doc addfile ./doc/HSX11.sgml addfile ./doc/Makefile hunk ./Makefile 2 -# $Id: Makefile,v 1.7 2003/05/22 11:14:30 reid Exp $ +# $Id: Makefile,v 1.8 2003/05/22 14:16:41 reid Exp $ hunk ./Makefile 9 -SUBDIRS = cbits +SUBDIRS = cbits doc hunk ./doc/HSX11.sgml 1 + +]> + + + + 2003-5-22 + HSX11 Guide + + Alastair + Reid + +
alastair@reid-consulting-uk.ltd.uk
+ + 1997-2003 + Alastair Reid + + + This document describes HSX11, the Haskell binding to X11, + version 1.00. + +
+ + + + + + + + Introduction + + The library aims to provide a direct translation of the X + binding into Haskell so the most important pieces of documentation + you should read are the XFree86 website. + 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. + + + + + Changes from X11 documentation + + In making a Haskell binding to a C library, there are certain + necessary and/or desirable changes in the interface. + + These can be divided into systematic changes which are applied + uniformly throughout the library and ad-hoc changes which are + applied to particular parts of the interface. + + Systematic Changes + + + + + + 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. + + + In addition, we chose to take advantage of Haskell's module system + to allow us to drop common prefixes ( + + + + + + +C Name +Haskell Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haskell ... + + + + + + + Haskell ... + + + + + + + + + + Ad hoc Changes + + + Finally, we chose to make some changes in the interface to better + conform with idiomatic Haskell style or to allow a typesafe interface. + + + + + + one... + + + + + + + two... + + + + + + + + + + + + + Example + + + + &the-index + +
hunk ./doc/Makefile 1 +#----------------------------------------------------------------------------- +# $Id: Makefile,v 1.1 2003/05/22 14:16:41 reid Exp $ + +TOP = .. +include $(TOP)/mk/boilerplate.mk + +SGML_DOC = HSX11 + +include $(TOP)/mk/target.mk }