erro: especificadores de declaração esperados ou '...' antes de 'list_node'

Eu tenho um arquivo catalog.h com este

typedef struct node* list_node;
struct node
{
    operationdesc op_ptr;
    list_node next;
};

e um parser.h com isso

#include "catalog.h"

int parse_query(char *input, list_node operation_list);

Ambos os cabeçalhos têm#ifndef, #define, #endif. O compilador me dá esse erro:expected declaration specifiers or ‘...’ before ‘list_node’ na linha parse_query. Qual é o problema? Tentei colocar o typedef em parser.h, e está tudo bem. Por que obtenho esse erro quando o typedef está no catalog.h?

questionAnswers(2)

yourAnswerToTheQuestion