Substantially revised Borrow trait, add range proposal