I was playing with modifying QuickCheck to automatically benchmark the routines as well as testing them for validity and something I have wanted for a while now is a way to get at performance numbers from within a haskell program itself. something like data RunStats = RunStats { rsThunksCreated :: Integer, rsMemAlloced :: Integer, rsMemFreed :: Integer, rsCpuCycles :: Integer, rsClockTime :: Integer, rsEvals :: Integer, rsAlreadyWHNF :: Bool } and a function evaluateStats :: a -> IO (a,RunStats) which evaluates a to WHNF and returns the statistics of all resources used in doing so. Now, probably a lot of the info I gave above might not be available depending on the specifics of the runtime system, but some should be, perhays more if profiling is turned on when compiling. Any idea if this is plausable to implement? I think it could be very useful in 'real-world' programming and evaluating data structures and algorithms programatically. John -- John Meacham - ⑆repetae.net⑆john⑈