template<> zz_p to<zz_p>(const ZZ& a) { return zz_p(rem(a, zz_p::modulus()), INIT_LOOP_HOLE); }
zz_p to_zz_p(const ZZ& a) { return zz_p(rem(a, zz_p::modulus()), INIT_LOOP_HOLE); }
template<> zz_p to<zz_p>(long a) { return zz_p(reduce(a, zz_p::modulus()), INIT_LOOP_HOLE); }
zz_p to_zz_p(long a) { return zz_p(reduce(a, zz_p::modulus()), INIT_LOOP_HOLE); }