def buildo(op, args, obj):
    if not isvar(obj):
        oop, oargs = op_args(obj)
        return lall((eq, op, oop), (eq, args, oargs))
    else:
        try:
            return eq(obj, build(op, args))
        except TypeError:
            raise EarlyGoalError()
    raise EarlyGoalError()
obj is composed of op on args
dataset/ETHPy150Open logpy/logpy/logpy/assoccomm.py/buildo