Type error. List is a pointer type. Pointer types do not have constructors.
Type error. Expression new List yields a result of type List*. The returned value is supposed to have type List.
Incorrect. Assume that 'new List' is replaced by 'new ListCell'. Suppose A = [1,3,5] and B = [2,4,6]. The correct value of merge(A,B) is [1,2,3,4,5,6]. But this function computes the value of merge(A,B) as a list whose head is 1 and whose tail is merge([3,5], [4,6]). what happened to 2?
Incorrect. The last two cases are identical. There is no case to do the merge when head(A) > head(B).