>class List l where > head :: IArray UArray a => l a -> Maybe a > tail :: IArray UArray a => l a -> Maybe (l a) changed my mind about this... you cannot do: tail $ tail $ tail x so added a 'null' test instead.