rewrite add; does not compile