code: @SuppressWarnings("unchecked")
      public <T> T eval(V script, ScriptOutputType type, K... keys) {
          return (T) await(c.eval(script, type, keys, (V[]) new Object[0]));
      }
docs: Eval the supplied script, which must result in the requested
  {@link ScriptOutputType type}.
  
  @param script    Lua script to evaluate.
  @param type      Script output type.
  @param keys      Redis keys to pass to script.
  
  @param <T>       Expected return type.
  
  @return The result of evaluating the script.