public static <V> GValue<V> of(final String name, final V value) {
        if (value instanceof GValue) throw new IllegalArgumentException("value cannot be a GValue");
        return new GValue<>(name, GType.getType(value), value);
    }
Create a new {@code Var} with the specified name and value. If the argument provide is already a
{@code GValue} then an IllegalArgumentException is thrown.

@param name the name of the variable
@param value the value of the variable
@throws IllegalArgumentException if value is already a {@code GValue}
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java