Unprotect[Composition]; Composition[args__] := Function[fargs, Fold[Function[Null, #2[#1], HoldFirst], Unevaluated[fargs], Reverse[{args}]], HoldAll] Protect[Composition]