1. x is a number, since it occurs in expression x+1.

  2. y is a list, since it occurs as the second argument of ::, which is always a list.

  3. f x y is a list, since it is equal to (x+1)::y, and operator :: yields a list.

  4. f x is a function. It is the function (y |-> (x+1)::y).