{R : Type u} →
  {inst : Semiring R} →
    {P : Sort u_1} →
      {carrier : Type v} →
        {isAddCommMonoid : AddCommMonoid carrier} →
          {isModule : Module R carrier} →
            {carrier' : Type v} →
              {isAddCommMonoid' : AddCommMonoid carrier'} →
                {isModule' : Module R carrier'} →
                  { carrier := carrier, isAddCommMonoid := isAddCommMonoid, isModule := isModule } =
                      { carrier := carrier', isAddCommMonoid := isAddCommMonoid', isModule := isModule' } →
                    (carrier = carrier' → isAddCommMonoid ≍ isAddCommMonoid' → isModule ≍ isModule' → P) → P