I think that John Darlington's group at Imperial College were to first to use rule driven program transformation in their various skelton/coordination language parallelising compilers. Here, Tore Bratvold used simple higher order function/composition distribution transformation rules in his parallelising SML to occam compiler (SkelML). We're now building a more elaborate version into our SML to C+MPI parallelising compiler. We're also investigating the use of the CLAM proof planner to prove transformations correct. We're interested in transformations that group/ungroup higher order functions to try and optimise skeleton based parallelism. We're also investigating program synthesis to "lift" higher order functions from programs that don't contain them explicitly. Greg Michaelson