code: def ifexists(test, value, alt=None):
      '''
      Action function generator providing an if/then/else type primitive
      :param test: Expression to be tested to determine the branch path
      :param value: Expression providing the result if test is true
      :param alt: Expression providing the result if test is false
      :return: Versa action function to do the actual work
      '''
      def _ifexists(ctx):
          '''
          Versa action function Utility to specify a list of relationships
  
          :param ctx: Versa context used in processing (e.g. includes the prototype link)
          :return: Value computed according to the test expression result
          '''
          _test = test(ctx) if callable(test) else test
          if _test:
              return value(ctx) if callable(value) else value
          else:
              return alt(ctx) if callable(alt) else alt
      return _ifexistf ifexists(test, value, alt=None):
      '''
      Action function generator providing an if/then/else type primitive
      :param test: Expression to be tested to determine the branch path
      :param value: Expression providing the result if test is true
      :param alt: Expression providing the result if test is false
      :return: Versa action function to do the actual work
      '''
      def _ifexists(ctx):
          '''
          Versa action function Utility to specify a list of relationships
  
          :param ctx: Versa context used in processing (e.g. includes the prototype link)
          :return: Value computed according to the test expression result
          '''
          _test = test(ctx) if callable(test) else test
          if _test:
              return value(ctx) if callable(value) else value
          else:
              return alt(ctx) if callable(alt) else alt
      return _ifexists
docs: Action function generator providing an if/then/else type primitive
      :param test: Expression to be tested to determine the branch path
      :param value: Expression providing the result if test is true
      :param alt: Expression providing the result if test is false
      :return: Versa action function to do the actual work