'Return the commutator of `self` and `x`: ``~x*~self*x*self``'

def commutator(self, other):

    group = self.group
    if (not isinstance(other, group.dtype)):
        raise ValueError('commutator    of    only    FreeGroupElement    of    the    same    FreeGroup    exists')
    else:
        return (((self.inverse() * other.inverse()) * self) * other)
