We show how algorithmic differentiation can be used as a design paradigm to implement the adjoint calculation of sensitivities in Monte Carlo in full generality and with minimal analytical effort. With several examples we illustrate the workings of this technique and demonstrate how it can be...