∀ {R : Type u} [inst : CommRing R] [IsPrincipalIdealRing R] {M : Type v} [inst_2 : AddCommGroup M] [inst_3 : Module R M]
  [IsDomain R] [h' : Module.Finite R M],
  Module.IsTorsion R M →
    ∃ ι x p, ∃ (_ : ∀ (i : ι), Irreducible (p i)), ∃ e, Nonempty (M ≃ₗ[R] DirectSum ι fun i => R ⧸ R ∙ p i ^ e i)