{M : Type uM} →
  {N : Type uN} →
    {P : Type uP} →
      {Q : Type uQ} →
        [inst : MulOneClass M] →
          [inst_1 : MulOneClass N] →
            [inst_2 : CommMonoid P] → [inst_3 : MulOneClass Q] → (M →* N →* P) → (Q →* N) → M →* Q →* P