Why is my gennum function attaching it's return value l? I've commented everything inside gennum, just left a return value.
(loop for y below m do
(loop for x below n do
(when(zerop(coord x y table))
(print l)
(unless(setf v([b]gennum[/b] x y [b]l[/b] out))
(return-from alpha nil)))))