@SuppressWarnings("unchecked")
  public static <T> Choice<T> none() {
    return (Choice) NONE;
  }
@Test
  public void none() {
    assertThat(Choice.none().first()).isAbsent();
    assertThat(Choice.none().condition(true)).isSameInstanceAs(Choice.none());
    assertThat(Choice.none().condition(Predicates.alwaysTrue())).isSameInstanceAs(Choice.none());
    assertThat(Choice.none().thenChoose(Functions.constant(Choice.of("foo"))))
        .isSameInstanceAs(Choice.none());
  }