refactor: logical operators use structured return
Drop unused arg from logical operator compilation
Refactor logical ops; better error for non-object