Only copies a pointer to the new domain's cell

def coerce(self, other, is_positive=True):
        """
        Only copies a pointer to the new domain's cell
        """
        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),))