let of_option f =
  function
    | Some v -> VRT("Some", [f v])
    | None   -> VRT("None", [])