  Let $g$ be a principal modulus with rational Fourier coefficients for a
discrete subgroup of $\mathrm{SL}_2(\mathbb{R})$ between $\Gamma(N)$ or
$\Gamma_0(N)^\dag$ for a positive integer $N$. Let $K$ be an imaginary
quadratic field. We give a simple proof of the fact that the singular value of
$g$ generates the ray class field modulo $N$ or the ring class field of the
order of conductor $N$ over $K$. Furthermore, we construct primitive generators
of ray class fields of arbitrary moduli over $K$ in terms of Hasse's two
generators.
