docs: def _rdistributive(self, expr, op_example):
          """
          Recursively flatten the `expr` expression for the `op_example`
          AND or OR operation instance exmaple.
          """
          if expr.isliteral:
              return expr
  
          expr_class = expr.__class__
  
          args = (self._rdistributive(arg, op_example) for arg in expr.args)
          args = tuple(arg.simplify() for arg in args)
          if len(args) == 1:
              return args[0]
  
          expr = expr_class(*args)
  
          dualoperation = op_example.dual
          if isinstance(expr, dualoperation):
              expr = expr.distributive()
          return expr