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