Question: How can I go about getting a program's running time through system time functions in Haskell? I would like to measure the execution time of a whole program and/or an individual function.

Answer: 
Assuming you don't just want to measure the total running time of your program, like so:

```
 $ time ./A

```

Then you can time a computation a number of ways in Haskell:

* [Basic timing](http://www.haskell.org/haskellwiki/Timing_computations) (e.g. as in the [timeit package](http://hackage.haskell.org/packages/archive/timeit/1.0.0.0/doc/html/System-TimeIt.html))
* [Timing in cycles](http://www.haskell.org/haskellwiki/Timing_computation_in_cycles)

For more statistically sound measurement, consider

* [The Criterion package](http://hackage.haskell.org/package/criterion).

Finally, in all cases, you need to think about lazy evaluation: do you want to measure the cost of fully evaluating whatever data you produce, or just to its outermost constructor?
I'm not sure how accurate it is, but using `:set +s` in ghci will show the time and space used for subsequent computations.