static void print_limb(const char *name, mpz_srcptr x) {
    printf("\t%s: alloc:%d size:%d\n", name, x->_mp_alloc, x->_mp_size);
    for (int i = 0; i < x->_mp_size; i++) {
        printf("\t\t%d: ", i);
        printbuf(((uint8_t *)(x->_mp_d)) + i*8, 8);
        printf("\n");
    }
}