Can we assume that if a VectorSpace is requested, we want to return the internal storage?
Or should we check the dimension of that space, and return `batch` if it matches, and try `self.to_input(batch)` if it does not?