let rec addl = function
  | [] -> Zero
  | [s] -> s
  | [s; t] -> add s t
  | s :: sl -> add s (addl sl)