The unicode operators ⊗ and ⊕ are generally useful in other fields and other packages as well and therefore might be too generic to be owned and in particular be exported by Kronecker.
For instance, in KernelFunctions ⊗ will be used for creating tensor product kernels (JuliaGaussianProcesses/KernelFunctions.jl#232) and in MeasureTheory it might be used for creating product measures (JuliaMath/MeasureTheory.jl#159). The lightweight package TensorCore contains default implementations for tensor operations such as ⊗ and can be implemented by packages with tensor operations to avoid name clashes. Originally, the code was merged in JuliaLang/julia#35150 but later removed in JuliaLang/julia#35744 and moved to its own package.
However, since Kronecker defines its own version of ⊗, if one uses KernelFunctions and loads the optional dependency Kronecker, warnings are displayed since both packages define the operator (or reexport in case of KernelFunctions). Unfortunately, it seems Kronecker can't implement TensorCore.:⊗ since TensorCore already contains generic definitions for AbstractArray. Maybe compatibility with TensorCore and other Julia packages could be improved by not exporting Kronecker.:⊗?
The unicode operators
⊗and⊕are generally useful in other fields and other packages as well and therefore might be too generic to be owned and in particular be exported by Kronecker.For instance, in KernelFunctions
⊗will be used for creating tensor product kernels (JuliaGaussianProcesses/KernelFunctions.jl#232) and in MeasureTheory it might be used for creating product measures (JuliaMath/MeasureTheory.jl#159). The lightweight package TensorCore contains default implementations for tensor operations such as⊗and can be implemented by packages with tensor operations to avoid name clashes. Originally, the code was merged in JuliaLang/julia#35150 but later removed in JuliaLang/julia#35744 and moved to its own package.However, since Kronecker defines its own version of
⊗, if one uses KernelFunctions and loads the optional dependency Kronecker, warnings are displayed since both packages define the operator (or reexport in case of KernelFunctions). Unfortunately, it seems Kronecker can't implementTensorCore.:⊗since TensorCore already contains generic definitions forAbstractArray. Maybe compatibility with TensorCore and other Julia packages could be improved by not exportingKronecker.:⊗?