this'll also need some extra tests, for instance for `<->`, that are supposed to fail, so that we know the rules are not too loose.