∀ {R : Type u_3} {S : Type u_2} {M : Type u_1} [inst : Monoid R] [inst_1 : AddMonoid M] [inst_2 : DistribMulAction R M]
  [inst_3 : Monoid S] [inst_4 : SMul S M] (f : R →* S) (hf : Function.Surjective ⇑f)
  (hsmul : ∀ (c : R) (x : M), f c • x = c • x) (a : S), a • 0 = 0