cplan.discard(...) yields a new calculation plan identical to cplan except without any of
        the calculation steps listed in the arguments.

def discard(self, *args):
        '''
        cplan.discard(...) yields a new calculation plan identical to cplan except without any of
        the calculation steps listed in the arguments.
        '''
        return Plan(reduce(lambda m,k: m.discard(k), args, self.nodes))