∀ {R : Type u_3} [inst : CommSemiring R] {M : Type u_1} {N : Type u_2} [inst_1 : AddCommMonoid M]
  [inst_2 : AddCommMonoid N] [inst_3 : Module R M] [inst_4 : Module R N],
  AddHomClass (FreeAddMonoid (M × N) →+ TensorProduct R M N) (FreeAddMonoid (M × N)) (TensorProduct R M N)