condition is arrow function for comfortable usage, but it doesn't work
type Where = (over: Over) => A
function where(condition: Where) {
const o = new Over()
const overloadedFunction = overload(condition)
return overloadedFunction(o, condition)
}
const data = where(p => p.a1 || p.a2)
