Bernie Pope <[EMAIL PROTECTED]> writes: > Of course, [unsafeShow] won't be able to print functions in any helpful way, > unless we attach source code information to > functions as well (which may be worth doing anyway?).
It might not be able to print the function's definition, but perhaps its type? > One thing to watch out for is cycles in data structures. You may not > want to try to detect them, but at least you should > be lazy in generating the printable representation of values. For debugging output, I find I often limit output to avoid this. For instance, I defined this helper function for XML parser debugging: showSome :: [Tag] -> String showSome a@(_:_:_:_:_:_:_) = (init . show . take 5 $ a)++" ... ]" showSome a = show a with a typical error call: then error ("Couldn't find tag '"++show tag++"' in\n"++showSome list) Come to think of it, ghci's print-bind-result functionality could benefit from something like that... I also think it would be nice if unsafeShow could be available also in compiled code, not just ghci - e.g. sometimes you might want a mere user to run your application with debugging turned on. -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe