Differences between types of functions