Unioning MetaGraphs

I don’t completely understand the error, but looks like some methods from Base might need to be exended.

What is the minimum I would need to implement to make this work?:

g1 = MetaDiGraph(4)
add_edge!(g1, 1, 2)
add_edge!(g1, 2, 3)
add_edge!(g1, 3, 4)
set_props!(g1, 1, Dict(:name=>"A", :id => 1))
set_props!(g1, 2, Dict(:name=>"B", :id => 2))
set_props!(g1, 3, Dict(:name=>"C", :id => 3))
set_props!(g1, 4, Dict(:name=>"D", :id => 4))

g2 = MetaDiGraph(2)
add_edge!(g2, 1, 2)
set_props!(g2, 1, Dict(:name=>"E", :id => 5))
set_props!(g2, 2, Dict(:name=>"F", :id => 6))

h = union(g1, g2) # something like 
get_props!(h,1) == Dict(:name=>"A", :id => 1)
get_props!(h,2) == Dict(:name=>"B", :id => 2)
get_props!(h,3) == Dict(:name=>"C", :id => 3)
get_props!(h,4) == Dict(:name=>"D", :id => 4)
get_props!(h,5) == Dict(:name=>"E", :id => 5)
get_props!(h,6) == Dict(:name=>"F", :id => 6)

collect(edges(h)) # something like
Edge 1=>2
Edge 2=>3
Edge 3=>4
Edge 4=>5
Edge 5=>6
Error output
ERROR: MethodError: no method matching sort!(::MetaDiGraph{Int64,Float64})
Closest candidates are:
  sort!(::Any, ::Integer, ::Integer, ::LightGraphs.Experimental.Traversals.NOOPSortAlg, ::Base.Order.Ordering) at /home/me/.julia/packages/LightGraphs/siFgP/src/Experimental/Traversals/bfs.jl:7
  sort!(::DataFrame) at /home/me/.julia/packages/DataFrames/GtZ1l/src/dataframe/sort.jl:72
  sort!(::DataFrame, ::Base.Sort.Algorithm, ::Base.Order.Ordering) at /home/me/.julia/packages/DataFrames/GtZ1l/src/dataframe/sort.jl:88
  ...
Stacktrace:
 [1] merge_vertices(::MetaDiGraph{Int64,Float64}, ::MetaDiGraph{Int64,Float64}) at /home/me/.julia/packages/LightGraphs/siFgP/src/operators.jl:749
 [2] top-level scope at /home/me/code/BioPAXwork/local/pcquery/Ex_annotate_10X.jl:114
 [3] include_string(::Function, ::Module, ::String, ::String) at ./loading.jl:1088
ERROR: MethodError: no method matching iterate(::MetaDiGraph{Int64,Float64})
Closest candidates are:
  iterate(::DataStructures.IntSet) at /home/me/.julia/packages/DataStructures/DLSxi/src/int_set.jl:177
  iterate(::DataStructures.IntSet, ::Int64) at /home/me/.julia/packages/DataStructures/DLSxi/src/int_set.jl:179
  iterate(::DataStructures.IntSet, ::Int64, ::Any) at /home/me/.julia/packages/DataStructures/DLSxi/src/int_set.jl:179
  ...
Stacktrace:
 [1] mapfilter(::Base.var"#89#90"{typeof(∉),typeof(push!),Set{Int64}}, ::typeof(push!), ::MetaDiGraph{Int64,Float64}, ::Array{Int64,1}) at ./abstractset.jl:421
 [2] _grow! at ./array.jl:2537 [inlined]
 [3] union! at ./array.jl:2542 [inlined]
 [4] union(::MetaDiGraph{Int64,Float64}, ::MetaDiGraph{Int64,Float64}) at ./abstractset.jl:48
 [5] top-level scope at /home/me/code/BioPAXwork/local/pcquery/Ex_annotate_10X.jl:114
 [6] include_string(::Function, ::Module, ::String, ::String) at ./loading.jl:1088