{R : Type uR} →
  {A : Type uA} →
    {M₁ : Type uM₁} →
      {M₂ : Type uM₂} →
        {N₁ : Type uN₁} →
          {N₂ : Type uN₂} →
            [inst : CommSemiring R] →
              [inst_1 : CommSemiring A] →
                [inst_2 : AddCommMonoid M₁] →
                  [inst_3 : AddCommMonoid M₂] →
                    [inst_4 : AddCommMonoid N₁] →
                      [inst_5 : AddCommMonoid N₂] →
                        [inst_6 : Algebra R A] →
                          [inst_7 : Module R M₁] →
                            [inst_8 : Module A M₁] →
                              [inst_9 : Module R N₁] →
                                [inst_10 : Module A N₁] →
                                  [inst_11 : SMulCommClass R A M₁] →
                                    [IsScalarTower R A M₁] →
                                      [inst_13 : SMulCommClass R A N₁] →
                                        [IsScalarTower R A N₁] →
                                          [inst_15 : Module R M₂] →
                                            [inst_16 : Module R N₂] →
                                              LinearMap.BilinMap A M₁ N₁ →
                                                LinearMap.BilinMap R M₂ N₂ →
                                                  LinearMap.BilinMap A (TensorProduct R M₁ M₂) (TensorProduct R N₁ N₂)