I want to write something about this before I forget. First, a bit of context: If we have a monoidal category, we want to have as syntax for morphisms not only f ⊗ g, but also composition, etc. For that, we can
Leave all structures and types as they are, without extending anything (this implies for example that a monad is not a functor; it's a structure on a functor)
define all syntax as traits which extend Any, with the implicit parameter being by default an abstract method
That way syntax for a 2-rig-category could include all that it should have.
I want to write something about this before I forget. First, a bit of context: If we have a monoidal category, we want to have as syntax for morphisms not only f ⊗ g, but also composition, etc. For that, we can
That way syntax for a 2-rig-category could include all that it should have.