The full details of a parallel computation can be very complex. For example, many run-time systems employ a number of strategies to ensure best use of available hardware. Most parallel functional languages hide this information from the programmer, providing very simple annotations to control the parallelism in a program , , , . Some, such as Hudak’s para-functional programming , allow the programmer to describe the mapping of tasks onto processors , , , , whilst the more recent GUM system  only requires the programmer to annotate possible expressions that can be evaluated in parallel.
Unable to display preview. Download preview PDF.