code: public Object invoke( Object[] args )
    {
      Object value = getValue();
      if( value instanceof ISymbol )
      {
        return ((Symbol)value).invoke( args );
      }
      if( value instanceof IBlock )
      {
        return ((IBlock) value).invokeWithArgs( args );
      }
  
      Method method = (Method)value;
      Object ret;
      try
      {
        ret = method.invoke( null, args );
      }
      catch( Exception e )
      {
        throw GosuExceptionUtil.forceThrow( e );
      }
      return ret;
    }
docs: Invokes function.