class CommunitySetExprToBDD implements CommunitySetExprVisitor<BDD, Arg> {

  @Override
  public BDD visitCommunitySetDifference(CommunitySetDifference communitySetDifference, Arg arg) {
    BDD positive = communitySetDifference.getInitial().accept(this, arg);
    BDD negative =
        communitySetDifference.getRemovalCriterion().accept(new CommunityMatchExprToBDD(), arg);
    return positive.diffWith(negative);
  }

}