Syntax error. head->A makes no sense. To select the head of the ListCell pointed to by A, write A->head.
Type error. ListCell returns a result of type ListCell, not ListCell*. Use new ListCell.
Type error. The parameters of merge are both lists. The head of a list is an integer.