<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="julia&gt; [:A=&gt;rand(2)]
1-element Array{Pair{Symbol,Array{Float64,1}},1}:
Error showing value of type Array{Pair{Symbol,Array{Float64,1}},1}:
ERROR: AssertionError: Array{Float64,1} is not a subtype of Pair{Symbol,Array{Float64,1}}
Stacktrace:
 [1] typeinfo_prefix(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Array{Float64,1}) at ./arrayshow.jl:479
 [2] show_vector(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Array{Float64,1}, ::Char, ::Char) at ./arrayshow.jl:432 (repeats 2 times)
 [3] show at ./arrayshow.jl:446 [inlined]
 [4] show(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Pair{Symbol,Array{Float64,1}}) at ./show.jl:579
 [5] #sprint#345(::IOContext{REPL.Terminals.TTYTerminal}, ::Int64, ::Function, ::Function, ::Pair{Symbol,Array{Float64,1}}, ::Vararg{Pair{Symbol,Array{Float64,1}},N} where N) at ./strings/io.jl:91
 [6] #sprint at ./&lt;missing&gt;:0 [inlined]
 [7] alignment(::IOContext{REPL.Terminals.TTYTerminal}, ::Pair{Symbol,Array{Float64,1}}) at ./show.jl:1789
 [8] alignment(::IOContext{REPL.Terminals.TTYTerminal}, ::Array{Pair{Symbol,Array{Float64,1}},1}, ::Base.OneTo{Int64}, ::Base.OneTo{Int64}, ::Int64, ::Int64, ::Int64) at ./arrayshow.jl:68
 [9] print_matrix(::IOContext{REPL.Terminals.TTYTerminal}, ::Array{Pair{Symbol,Array{Float64,1}},1}, ::String, ::String, ::String, ::String, ::String, ::String, ::Int64, ::Int64) at ./arrayshow.jl:187
 [10] print_matrix at ./arrayshow.jl:160 [inlined]
 [11] print_array at ./arrayshow.jl:309 [inlined]
 [12] show(::IOContext{REPL.Terminals.TTYTerminal}, ::MIME{Symbol(&quot;text/plain&quot;)}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at ./arrayshow.jl:345
 [13] display(::REPL.REPLDisplay{REPL.LineEditREPL}, ::MIME{Symbol(&quot;text/plain&quot;)}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:131
 [14] display(::REPL.REPLDisplay{REPL.LineEditREPL}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:134
 [15] display(::Array{Pair{Symbol,Array{Float64,1}},1}) at ./multimedia.jl:287
 [16] (::getfield(Base, Symbol(&quot;#inner#4&quot;)){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},typeof(display),Tuple{Array{Pair{Symbol,Array{Float64,1}},1}}})() at ./essentials.jl:639
 [17] #invokelatest#3 at ./essentials.jl:640 [inlined]
 [18] invokelatest at ./essentials.jl:639 [inlined]
 [19] print_response(::REPL.Terminals.TTYTerminal, ::Any, ::Nothing, ::Bool, ::Bool, ::Nothing) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:152
 [20] print_response(::REPL.LineEditREPL, ::Any, ::Nothing, ::Bool, ::Bool) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:138
 [21] (::getfield(REPL, Symbol(&quot;#do_respond#42&quot;)){Bool,getfield(REPL, Symbol(&quot;##52#61&quot;)){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:704
 [22] top-level scope"><pre class="notranslate"><code class="notranslate">julia&gt; [:A=&gt;rand(2)]
1-element Array{Pair{Symbol,Array{Float64,1}},1}:
Error showing value of type Array{Pair{Symbol,Array{Float64,1}},1}:
ERROR: AssertionError: Array{Float64,1} is not a subtype of Pair{Symbol,Array{Float64,1}}
Stacktrace:
 [1] typeinfo_prefix(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Array{Float64,1}) at ./arrayshow.jl:479
 [2] show_vector(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Array{Float64,1}, ::Char, ::Char) at ./arrayshow.jl:432 (repeats 2 times)
 [3] show at ./arrayshow.jl:446 [inlined]
 [4] show(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Pair{Symbol,Array{Float64,1}}) at ./show.jl:579
 [5] #sprint#345(::IOContext{REPL.Terminals.TTYTerminal}, ::Int64, ::Function, ::Function, ::Pair{Symbol,Array{Float64,1}}, ::Vararg{Pair{Symbol,Array{Float64,1}},N} where N) at ./strings/io.jl:91
 [6] #sprint at ./&lt;missing&gt;:0 [inlined]
 [7] alignment(::IOContext{REPL.Terminals.TTYTerminal}, ::Pair{Symbol,Array{Float64,1}}) at ./show.jl:1789
 [8] alignment(::IOContext{REPL.Terminals.TTYTerminal}, ::Array{Pair{Symbol,Array{Float64,1}},1}, ::Base.OneTo{Int64}, ::Base.OneTo{Int64}, ::Int64, ::Int64, ::Int64) at ./arrayshow.jl:68
 [9] print_matrix(::IOContext{REPL.Terminals.TTYTerminal}, ::Array{Pair{Symbol,Array{Float64,1}},1}, ::String, ::String, ::String, ::String, ::String, ::String, ::Int64, ::Int64) at ./arrayshow.jl:187
 [10] print_matrix at ./arrayshow.jl:160 [inlined]
 [11] print_array at ./arrayshow.jl:309 [inlined]
 [12] show(::IOContext{REPL.Terminals.TTYTerminal}, ::MIME{Symbol("text/plain")}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at ./arrayshow.jl:345
 [13] display(::REPL.REPLDisplay{REPL.LineEditREPL}, ::MIME{Symbol("text/plain")}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:131
 [14] display(::REPL.REPLDisplay{REPL.LineEditREPL}, ::Array{Pair{Symbol,Array{Float64,1}},1}) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:134
 [15] display(::Array{Pair{Symbol,Array{Float64,1}},1}) at ./multimedia.jl:287
 [16] (::getfield(Base, Symbol("#inner#4")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},typeof(display),Tuple{Array{Pair{Symbol,Array{Float64,1}},1}}})() at ./essentials.jl:639
 [17] #invokelatest#3 at ./essentials.jl:640 [inlined]
 [18] invokelatest at ./essentials.jl:639 [inlined]
 [19] print_response(::REPL.Terminals.TTYTerminal, ::Any, ::Nothing, ::Bool, ::Bool, ::Nothing) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:152
 [20] print_response(::REPL.LineEditREPL, ::Any, ::Nothing, ::Bool, ::Bool) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:138
 [21] (::getfield(REPL, Symbol("#do_respond#42")){Bool,getfield(REPL, Symbol("##52#61")){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /buildworker/worker/build_ubuntu64/build/usr/share/julia/site/v0.7/REPL/src/REPL.jl:704
 [22] top-level scope
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="julia&gt; versioninfo()
Julia Version 0.7.0-DEV.4390
Commit 79c7bdd9ec (2018-02-26 07:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, haswell)
Environment:
  JULIA_BINDIR = /opt/julia/bin
  JULIA_HOME = /opt/julia0p6/bin"><pre class="notranslate"><code class="notranslate">julia&gt; versioninfo()
Julia Version 0.7.0-DEV.4390
Commit 79c7bdd9ec (2018-02-26 07:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, haswell)
Environment:
  JULIA_BINDIR = /opt/julia/bin
  JULIA_HOME = /opt/julia0p6/bin
</code></pre></div>
<p dir="auto">Would be useful for many packages, JuliennedArrays, LightQuery, SplitApplyCombine, MappedArrays, Query, etc. Base already has an AbstractEltypelessArray: the lazy broadcast machinery, it would just be a matter of formalizing the interface. Given that traits aren't coming any time soon, it couldn't be <code class="notranslate">&lt;: AbstractArray</code>, so we would have to duplicate all of the machinery for <code class="notranslate">AbstactArrays</code>. I could try to build a prototype if people are interested?</p>