docs: def buildMutator(items, axes=None, bias=None):
      """
          Build a mutator with the (location, obj) pairs in items.
          Determine the bias based on the given locations.
      """
      from mutatorMath.objects.bender import Bender
      items = [(Location(loc),obj) for loc, obj in items]
      m = Mutator()
      if axes is not None:
          bender = Bender(axes)
          m.setBender(bender)
      else:
          bender = noBend
      # the order itself does not matter, but we should always build in the same order.
      items = sorted(items)
      if not bias:
          bias = biasFromLocations([bender(loc) for loc, obj in items], True)
      else:
          # note: this means that the actual bias might be different from the initial value. 
          bias = bender(bias)
      m.setBias(bias)
      n = None
      ofx = []
      onx = []
      for loc, obj in items:
          loc = bender(loc)
          if (loc-bias).isOrigin():
              m.setNeutral(obj)
              break
      if m.getNeutral() is None:
          raise MutatorError("Did not find a neutral for this system", m)
      for loc, obj in items:
          locbent = bender(loc)
          lb = locbent-bias
          if lb.isOrigin(): continue
          if lb.isOnAxis():
              onx.append((lb, obj-m.getNeutral()))
          else:
              ofx.append((lb, obj-m.getNeutral()))
      for loc, obj in onx:
          m.addDelta(loc, obj, punch=False,  axisOnly=True)
      for loc, obj in ofx:
          m.addDelta(loc, obj, punch=True,  axisOnly=True)
      return bias, m