This chapter explores the pleasures and pitfalls of borrowing functions. Although it's a mode of code reuse that is not as easy in many other languages, one must be careful of three things: the qualifications of the borrower; possible effects on the borrower; and possible effects on the donor. This chapter first shows how to determine whether the borrowing object meets the borrowed function's requirements. This can be determined by the following steps: making the borrowed function qualify the borrower; attaching an aspect to the borrowed object; and adding an object‐validator to the ContractRegistry. A borrowed function's requirement for certain properties and functions can make it a demanding guest, but its tendency to rearrange the furniture in its new home can make it downright impolite. Before the borrower allows the new function to move in, it should know what's in store.