Low level optimisations from conventional compiler technology often give very poor results when applied to code from lazy functional languages, mainly because of the completely dioeerent structure of the code, unknown control flow, etc. A novel approach to compiling laziness is needed. We describe a complete back end for lazy functional languages, which uses various interprocedural optimisations to produce highly optimised code. The main features of our new back end are the following. It uses a ...