class Result {

  @NonNull
  public static <T> Result<T> absentIfNull(@Nullable final T value) {
    return value == null ? Result.<T>absent() : present(value);
  }

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

}