a numeric matrix, a numeric vector, a lazyVector object, or
a lazyMatrix object
dim
ignored if x is a (possibly lazy) matrix; otherwise, i.e.
if x is a (possibly lazy) vector, then dim must be
NULL or a vector of two integers, and NULL is equivalent
to c(length(x), 1) (a column matrix)