title: What's meant by "isSome oldest(tl dates)" here; why "oldest(tl dates)" has a option type?
body: <pre><code>fun oldest (dates: (int*int*int) list) =
      if null dates
      then NONE
      else let
      val ans = oldest(tl dates)
      in
      if isSome ans andalso is_older(valOf ans, hd dates)
      then ans
      else SOME (hd dates)
      end
  </code></pre>
  <p>a function compares all dates(like 2018,2,28) in the list, and get the oldest date</p>