Many different mechanisms have been proposed to specify the parallelism in functional languages. Space precludes describing every proposal in detail, instead this section concentrates on the approaches that are most closely related to evaluation strategies, covering purely-implicit approaches, algorithmic skeletons, coordination languages, language extensions and explicit approaches. Some non-functional approaches are also covered. The approach that is most closely related to our work is that using first-class schedules [Mirani and Hudak, 1995], described in Section *.