Large change to semantics since abstract negation was a little borked.