Hi all, I have a problem while executing ocaml, did you see any problem in my code? and do I need to give each variable a type before I use it ?my code is in the following, you can take a look at the code and the info of the errors let rec first(x, y, z)=x let rec second(x,y,z)=y let rec third(x,y,z)=z let rec rebuilt anss (m,n,ys)= match anss with [] -> (m,n,ys) |element::anss -> if m>first(element ) and n< second(element) then rebuilt anss (m,n,ys) else element::(rebuild anss (m,n,ys)) let rec sum anss cur n ys= match cur with None -> (match ys with []-> anss |y::ys-> if y=0 then sum(rebuild anss (n,n,0)) None n+1 ys else sum anss (Some(n, y, [y])) (n + 1) ys) the red area is shown has an error, and the error info is like this:"This expression has type int list -> 'a but is here used with type int", so would you please let me know if possible how can I let the compiler know the type of anss is a list but not an integrer? thank you -- Su Zhang PHD Student Computer Information and Science Kansas State University