private static CheckResult checkProperty(Property prop, Option<CheckParams> params) {
    for (CheckParams ps : params) {
      return prop.check(ps.minSuccessful(), ps.maxDiscarded(), ps.minSize(), ps.maxSize());
    }

    return prop.check();
  }
 public static void main(final String[] args) {
   final Property p = property(arbInteger, a -> prop(isPositive(a) == (a != 0 && !isNegative(a))));
   summary.println(p.check()); // Falsified after 0 passed tests with argument: 0
 }
 public static void main(final String[] args) {
   final Property p = property(arbInteger, arbInteger, (a, b) -> prop(a + b == b + a));
   summary.println(p.check()); // OK, passed 100 tests.
 }