nDimensions is private in std.array, so reproduce the code here
suppress two semi-colons detected by ldmd as warning, do a hack for checkNotEmpty_
refCount property -> refCountedStore (std.typecons)