A lazy sum

Here is a little functional sum that sums a function f over various domains and accepts lazy expressions as arguments.