I would like to construct a parametric type with `SharedArrays`

whenever `nprocs()>1`

, and with standard `Array`

s when not. I’m trying to understand why this doesnt work:

```
type V{T}
array :: T
function V{T}(arr::T)
this = new()
if isa(arr,SharedArray)
this.array = SharedArray(Float64,(2,2),pids=workers())
else
this.array = zeros(2,2)
end
return this
end
end
ERROR: MethodError: Cannot `convert` an object of type SharedArray{Float64,0} to an object of type V{T}
This may have arisen from a call to the constructor V{T}(...),
since type constructors fall back to convert methods.
in V{T}(::SharedArray{Float64,0}) at ./sysimg.jl:53
```

where my idea was to say

```
s = zeros(2,2)
if nprocs()>1
s = SharedArray{Float64}()
end
# construct
V(s)
```