code: def Expression(*args, **kwargs):
      
      # dispatch
      if not hasattr(args[0], '_Expression'):
          return BaseExpression(*args, *kwargs)
      else:
          return args[0]._Expression(*args, **kwargs)
docs: Return an appropriate Expression given the arguments
  
      Parameters
      ----------
      args : tuple
          Positional arguments passed to the Expression class
      kwargs : dict
          Keyword arguments passed to the Expression class