∀ {R : Type u_3} {N : Type u_1} {P : Type u_2} [inst : CommRing R] [inst_1 : AddCommGroup N] [inst_2 : AddCommGroup P]
  [inst_3 : Module R N] [inst_4 : Module R P] {g : N →ₗ[R] P} (hg : Function.Surjective ⇑g),
  Function.RightInverse (Function.surjInv hg) ⇑g