Das erlaubt es, eine Codeschicht zwischen eine Funktion und die von ihr verwendeten Parameter zu legen. Ursprünglich wurde dies zur Implementation von Call-by-Name verwendet, aber die Technik dient auch Optimierungszwecken und dem Interfacing zwischen eigentlich inkompatiblen Softwaremodulen.