These were my thoughts re random constructors:
+ The distributions package is not quite straightforward to use, especially since random constructors are so often needed (is this more a documentation issue, perhaps?)
+ Numpy/MatLab parity

These were my thoughts re constructors as global functions:
+ I thought it would scale better to 3+ dimensions
+ it would reduce clutter in the companion objects as more constructors are added (e.g. random constructors), perhaps compiling better???
+ the syntax would be somewhat cleaner, and more Numpy/MatLab-ish (`zeros( n )` vs. `DenseVector.zeros( n )`, etc)

Let me know, I will of course defer to you