first/last should behave like a loop for objects