let pop s = match !s with [] -> None | h :: t -> s:= t; Some h