Come la chiami? che errore ti da?
In ogni caso
codice:
let rec sums ((s::_) as ss) xs =
  match xs with
    | []->[]
    | [x] -> (s+x) :: ss
    | (x::xs) -> sums ((s+x)::ss) xs;;

E', in tutti i casi escluso (sums ss []), equivalente a
codice:
let rec sums ((s::_) as ss) xs =
  match xs with
    | []->ss
    | (x::xs) -> sums ((s+x)::ss) xs;;