In your example:
main = let g = insEdge (0,1,()) $ buildGr [ ([], 0, (), []), ([], 1, (), []) ]
g' = delEdge (0,1) g
in if 1 `elem` suc g 0
then putStrLn "OK"
else putStrLn "ERROR "
the variable g'
is never used. Should the expression suc g 0
be suc g' 0
? It seems to me that this should make it print OK
...
psmears
2010-05-17 10:25:01