let result = function
  | Task.Result Valid -> Wpo.Valid
  | Task.Result Invalid -> Wpo.Invalid
  | Task.Result Unknown -> Wpo.Unknown
  | Task.Canceled -> Wpo.Timeout
  | Task.Failed exn -> Wpo.Failed (Printexc.to_string exn)