static Either<L, R> cond<L, R>(bool predicate(), Function0<R> r, Function0<L> l) => predicate() ? right(r()) : left(l());