traverse always returns it's list argument