docs: def args(self) -> Union[Value, Sequence[ExprArg]]:
          '''Returns the expression's arguments.'''
          if self._expr[0] in ['number', 'boolean']:
              return self._expr[1]
          elif self._expr[0] == 'pvar_expr':
              return self._expr[1]
          elif self._expr[0] == 'randomvar':
              return self._expr[1][1]
          elif self._expr[0] in ['+', '-', '*', '/']:
              return self._expr[1]
          elif self._expr[0] in ['^', '&', '|', '~', '=>', '<=>']:
              return self._expr[1]
          elif self._expr[0] in ['>=', '<=', '<', '>', '==', '~=']:
              return self._expr[1]
          elif self._expr[0] == 'func':
              return self._expr[1][1]
          elif self._expr[0] in ['sum', 'prod', 'avg', 'max', 'min', 'forall', 'exists']:
              return self._expr[1]
          elif self._expr[0] == 'if':
              return self._expr[1]
          else:
              return []