Homomorphisms are natural building blocks for parallel programming because they define a recursive, structured way in which they can be computed. This pattern depends on the shape of the argument, but not on the specific homomorphism. Encapsulation of the computation and communication structure, parameterised by particular component functions which depend on the specific homomorphism, are natural.
This approach led to the first parallel programming model that was both efficient and expressive (the parallel theory of lists). It has also been used to develop parallel homomorphisms and implementations for trees, and program derivation systems for graphs and arrays.