Hi! I found that ⊕ ends in an infinite recursion when trying to add ProductSpace.
V₁, V₂ = ProductSpace(Rep[SU₂](0=>1)), ProductSpace(Rep[SU₂](1=>1))
⊕(V₁, V₂) # infinite recursion
This is defined at spaces/vectorspaces.jl:149
⊕(V₁::VectorSpace, V₂::VectorSpace) = ⊕(promote(V₁, V₂)...)
Not sure what should be the behavior here. Maybe the best would be to throw an error for ProductSpace.