@Test
  void inner() {
    assertExpressional(person.bestFriend.value().with(f -> f.hobby.is("hiking")),
            "call op=EQUAL path=bestFriend.hobby constant=hiking");

    assertExpressional(person.bestFriend.value().with(f -> f.not(v -> v.hobby.is("hiking"))),
            "call op=NOT",
            "  call op=EQUAL path=bestFriend.hobby constant=hiking");

    assertExpressional(person.bestFriend
                    .value().with(f -> f.hobby.is("hiking").hobby.is("ski")),
            "call op=AND",
            "  call op=EQUAL path=bestFriend.hobby constant=hiking",
            "  call op=EQUAL path=bestFriend.hobby constant=ski");

    assertExpressional(person.bestFriend
                    .value().with(f -> f.hobby.is("hiking").or().hobby.is("ski")),
            "call op=OR",
            "  call op=EQUAL path=bestFriend.hobby constant=hiking",
            "  call op=EQUAL path=bestFriend.hobby constant=ski");

    assertExpressional(person.bestFriend
                    .value().with(f -> f.hobby.is("hiking").or().hobby.is("ski"))
                    .fullName.isEmpty(),
            "call op=AND",
            "  call op=OR",
            "    call op=EQUAL path=bestFriend.hobby constant=hiking",
            "    call op=EQUAL path=bestFriend.hobby constant=ski",
            "  call op=EQUAL path=fullName constant="
    );

    assertExpressional(person.bestFriend.value().hobby.isEmpty()
                    .with(p -> p.bestFriend.value().hobby.is("hiking").or()
                            .bestFriend.value().hobby.is("ski"))
                    .fullName.is("John"),
            "call op=AND",
            "  call op=EQUAL path=bestFriend.hobby constant=",
            "  call op=OR",
            "    call op=EQUAL path=bestFriend.hobby constant=hiking",
            "    call op=EQUAL path=bestFriend.hobby constant=ski",
            "  call op=EQUAL path=fullName constant=John"
    );
  }
AND / ORs combined like {@code (A and B) or (C and D)}
criteria/common/test/org/immutables/criteria/ExpressionAsStringTest.java