note monoidal = cartesian