code: def coerce(self, other, is_positive=True):
          
          if hasattr(other, 'get_domain') and hasattr(other, 'lower') and hasattr(other, 'upper'):
              if self.is_domain_equal(other):
                  return other
              else:
                  msg = "Cannot merge partial orders with different domains!"
                  raise CellConstructionFailure(msg)
          if isinstance(other, LinearOrderedCell):
              # convert other's domain to a chain/dag
              # first ensure domain has same size and elements
              raise NotImplemented("Please Implement me!")
          domain = self.get_domain()
          if other in domain:
              c = self.__class__()
              if not is_positive:
                  # add value to lower (negative example)
                  c.lower = set([other])
                  c.upper = set()
              else:
                  # add value to upper (positive example)
                  c.upper = set([other])
                  c.lower = set()
              return c
          else:       
              raise CellConstructionFailure("Could not coerce value that is"+
                      " outside order's domain . (Other = %s) " % (str(other),))
docs: Only copies a pointer to the new domain's cell