def __eq__(self, other): return core.FExpr(self) == core.FExpr(other)
def extend(self, other): return core.FExpr(self).extend(other)
def __rrshift__(self, other): return core.FExpr(other) >> core.FExpr(self)
def __neg__(self): """Unary minus: -expr.""" return -core.FExpr(self)
def len(self): return core.FExpr(self).len()
def __gt__(self, other): return core.FExpr(self) > core.FExpr(other)
def __ge__(self, other): return core.FExpr(self) >= core.FExpr(other)
def __rfloordiv__(self, other): return core.FExpr(other) // core.FExpr(self)
def __rmod__(self, other): return core.FExpr(other) % core.FExpr(self)
def __rmul__(self, other): return core.FExpr(other) * core.FExpr(self)
def __rtruediv__(self, other): return core.FExpr(other) / core.FExpr(self)
def __rsub__(self, other): return core.FExpr(other) - core.FExpr(self)
def __radd__(self, other): return core.FExpr(other) + core.FExpr(self)
def remove(self, other): return core.FExpr(self).remove(other)
def __ne__(self, other): return core.FExpr(self) != core.FExpr(other)
def __rpow__(self, other): return core.FExpr(other)**core.FExpr(self)
def __lt__(self, other): return core.FExpr(self) < core.FExpr(other)
def __rand__(self, other): return core.FExpr(other) & core.FExpr(self)
def __le__(self, other): return core.FExpr(self) <= core.FExpr(other)
def __rxor__(self, other): return core.FExpr(other) ^ core.FExpr(self)
def __invert__(self): """Unary inversion: ~expr.""" return ~core.FExpr(self)
def __ror__(self, other): return core.FExpr(other) | core.FExpr(self)
def __pos__(self): """Unary plus (no-op).""" return +core.FExpr(self)
def __rlshift__(self, other): return core.FExpr(other) << core.FExpr(self)
def re_match(self, pattern, flags=None): return core.FExpr(self).re_match(pattern, flags=flags)
def len(self): return core.FExpr(self).len() # will warn