schema_types_cb(gqlType type, void *ctx) {
    SchemaCbCtx		scc = (SchemaCbCtx)ctx;
    gqlValue		co;
    struct _gqlCobj	child = { .clas = &type_class, .ptr = (void*)type };
    struct _gqlField	cf;

    if (AGOO_ERR_OK != scc->err->code || GQL_LIST == type->kind || GQL_NON_NULL == type->kind || GQL_SCHEMA == type->kind) {
	return;
    }
    memset(&cf, 0, sizeof(cf));
    cf.type = scc->sel->type->base;

    if (NULL == (co = gql_object_create(scc->err)) ||
	AGOO_ERR_OK != gql_list_append(scc->err, scc->list, co)) {
	return;
    }
    gql_eval_sels(scc->err, scc->doc, (gqlRef)&child, &cf, scc->sel->sels, co, scc->depth);
}
schema_types_cb(gqlType type, void *ctx) {
    SchemaCbCtx		scc = (SchemaCbCtx)ctx;
    gqlValue		co;
    struct _gqlCobj	child = { .clas = &type_class, .ptr = (void*)type };
    struct _gqlField	cf;

    if (AGOO_ERR_OK != scc->err->code || GQL_LIST == type->kind || GQL_NON_NULL == type->kind || GQL_SCHEMA == type->kind) {
	return;
    }
    memset(&cf, 0, sizeof(cf));
    cf.type = scc->sel->type->base;

    if (NULL == (co = gql_object_create(scc->err)) ||
	AGOO_ERR_OK != gql_list_append(scc->err, scc->list, co)) {
	return;
    }
    gql_eval_sels(scc->err, scc->doc, (gqlRef)&child, &cf, scc->sel->sels, co, scc->depth);
}