Reorder $delegate function so that the type parameter comes later and is optional
Offer compiler option to minimize delegates