AlgebraicJulia/Catlab.jl

`oapply` errors when called on empty wiring diagram.

Opened this issue · 1 comments

I think that this code should create a trivial OpenGraph.

using Catlab.CategoricalAlgebra, Catlab.Programs, Catlab.Graphs, Catlab.WiringDiagrams

const _, OpenGraph = OpenCSetTypes(Graph, :V)

wd = @relation () begin
end

oapply(wd, OpenGraph[])

Instead, it throws an error:

MethodError: no method matching colimit(::Type{Tuple{Any, Any}}, ::Catlab.CategoricalAlgebra.FreeDiagrams.BasicBipartiteFreeDiagram{Any, Any})

A classic genre of bug that tends to happen when Julia fails to propagate types through maps over empty lists.