# Andy Gill's Html library

**Thomas L. Bevan
**
tom@regex.com.au

*Mon, 24 Jun 2002 18:10:02 +0000*

Hi,
I've been working through the source code of Andy Gill's Html library for=
my=20
own edification.
Andrew makes the following definitions.
\begin{code}
instance (Show a) =3D> Show (BlockTable a) where
showsPrec p =3D showsTable
type TableI a =3D [[(a,(Int,Int))]] -> [[(a,(Int,Int))]]
data BlockTable a =3D Table (Int -> Int -> TableI a) Int Int
\end{code}
You can create a (1x1) table entry
\begin{code}
single :: a -> BlockTable a
single a =3D Table (\ x y z -> [(a,(x+1,y+1))] : z) 1 1
\end{code}
Can someone explain the reasoning behind using=20
a function to describe a Table rather than just a list of lists?
Tom