@Ocramius we should allow return `array` (empty set) and `Traversable` (for instance, `Doctrine\Common\Collections\Collection`)