(R : Type u_1) →
  [inst : CommSemiring R] →
    (A : Type u_6) →
      (M : Type u_7) →
        (N : Type u_8) →
          [inst_1 : AddCommMonoid M] →
            [inst_2 : AddCommMonoid N] →
              [inst_3 : Module R M] →
                [inst_4 : Module R N] →
                  [inst_5 : CommSemiring A] →
                    [inst_6 : Module A M] →
                      [inst_7 : Module A N] →
                        [inst_8 : SMulCommClass R A M] →
                          [TensorProduct.CompatibleSMul R A M N] → TensorProduct A M N →ₗ[A] TensorProduct R M N