Seems incomplete. E.g. what happens if a borrower goes away?
- the object is destroyed
- the program core dumps
- it is a compile time error
Assuming the best possible outcome in case of missing information turns out to be a bad strategy in general.