If we want to make this work with any Traversable we'll end up doing more conditional checks as Traversable doesn't ensure that we can do array offsets.