docs: def set_defaults(self, *args, **kwargs):
          '''
          cplan.set_defaults(a=b...) yields a new caclulation plan identical to cplan except such
          that the calculation default values specified by the arguments have been replaced with the
          given values instead. E.g., cplan.set_defaults(a=1) would return a new plan with a default
          value for a=1.
          '''
          d = merge(args, kwargs)
          # make a copy of this object's nodes with translations...
          nodes = ps.pmap({k:v.set_defaults(d) for (k,v) in six.iteritems(self.nodes)})
          # make a new plan with that!
          return Plan(nodes)