https://hgpu.org/?p=9113
Optimising Purely Functional GPU Programs