code: public <T extends Enum<T>> T answer(final Class<T> enumClass, final String validationErrorMessage) {
          validateWith(enumValidator(enumClass, validationErrorMessage));
          completeWith(new EnumCompleter(enumClass));
          return toEnum(enumClass).apply(answer());
      }
docs: Return user input as T extends Enum<T>. Complete with enum values.
  
  @param enumClass Class of enum to return
  @param validationErrorMessage error message if enum conversion fails
  @param <T> the return type
  @return user input as enum value