<p dir="auto">Right now there are at least 3 places with duplicates of the .tmbundle: here, <a href="https://github.com/karbarcca/Sublime-Julia">here</a>, and <a href="https://github.com/epitron/Julia-sublime">here</a>.</p>
<p dir="auto">This has worked fine so far, I think people have been good about syncing changes with the main repo and pulling when there are improvements.</p>
<p dir="auto">But eventually I think it will become a pain. Even now it's potentially unclear where you should submit pull requests. So I think it should be pulled out and, where convenient, submoduled back in.</p>
<p dir="auto">I thought this was just an issue in StaticArrays (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="330441344" data-permission-text="Title is private" data-url="https://github.com/JuliaArrays/StaticArrays.jl/issues/428" data-hovercard-type="issue" data-hovercard-url="/JuliaArrays/StaticArrays.jl/issues/428/hovercard" href="https://github.com/JuliaArrays/StaticArrays.jl/issues/428">JuliaArrays/StaticArrays.jl#428</a>), but the same thing is happening in Base.</p>
<p dir="auto">Currently:</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="julia&gt; mutable struct MyNumber
           val::Float64
       end

julia&gt; Base.zero(::Type{MyNumber}) = MyNumber(0.0)

julia&gt; v = zero([MyNumber(1.0), MyNumber(2.0)])
2-element Array{MyNumber,1}:
 MyNumber(0.0)
 MyNumber(0.0)

julia&gt; v[1].val = 1
1

julia&gt; v
2-element Array{MyNumber,1}:
 MyNumber(1.0)
 MyNumber(1.0)"><pre class="notranslate">julia<span class="pl-k">&gt;</span> <span class="pl-k">mutable struct</span> MyNumber
           val<span class="pl-k">::</span><span class="pl-c1">Float64</span>
       <span class="pl-k">end</span>

julia<span class="pl-k">&gt;</span> Base<span class="pl-k">.</span><span class="pl-en">zero</span>(<span class="pl-k">::</span><span class="pl-c1">Type{MyNumber}</span>) <span class="pl-k">=</span> <span class="pl-c1">MyNumber</span>(<span class="pl-c1">0.0</span>)

julia<span class="pl-k">&gt;</span> v <span class="pl-k">=</span> <span class="pl-c1">zero</span>([<span class="pl-c1">MyNumber</span>(<span class="pl-c1">1.0</span>), <span class="pl-c1">MyNumber</span>(<span class="pl-c1">2.0</span>)])
<span class="pl-c1">2</span><span class="pl-k">-</span>element Array{MyNumber,<span class="pl-c1">1</span>}<span class="pl-k">:</span>
 <span class="pl-c1">MyNumber</span>(<span class="pl-c1">0.0</span>)
 <span class="pl-c1">MyNumber</span>(<span class="pl-c1">0.0</span>)

julia<span class="pl-k">&gt;</span> v[<span class="pl-c1">1</span>]<span class="pl-k">.</span>val <span class="pl-k">=</span> <span class="pl-c1">1</span>
<span class="pl-c1">1</span>

julia<span class="pl-k">&gt;</span> v
<span class="pl-c1">2</span><span class="pl-k">-</span>element Array{MyNumber,<span class="pl-c1">1</span>}<span class="pl-k">:</span>
 <span class="pl-c1">MyNumber</span>(<span class="pl-c1">1.0</span>)
 <span class="pl-c1">MyNumber</span>(<span class="pl-c1">1.0</span>)</pre></div>
<p dir="auto">I think this is not desirable for non-isbits types.</p>