class Result {

  @NonNull
  public Throwable getFailure() {
    checkState(failure != null, "Not a failure");
    return failure;
  }

    Result(@Nullable final T value, @Nullable final Throwable failure);

}