This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit fd040c94a66516e473811fe29eaeaf4081cf104c
Merge: b37e35cf47 37d0cc1597
Author: Cole-Greer <[email protected]>
AuthorDate: Tue Aug 27 17:53:10 2024 -0700

    Merge branch '3.7-dev'

 CHANGELOG.asciidoc                                 |   1 +
 .../grammar/TraversalSourceSelfMethodVisitor.java  |  11 +-
 .../gremlin/process/traversal/Operator.java        |   4 +-
 .../step/sideEffect/AggregateGlobalStep.java       |  19 +-
 .../step/sideEffect/AggregateLocalStep.java        |  15 +-
 .../verification/ComputerVerificationStrategy.java |  24 +-
 .../TraversalSourceSelfMethodVisitorTest.java      |   2 +
 .../gremlin/process/traversal/OperatorTest.java    |   1 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  24 ++
 gremlin-go/driver/cucumber/gremlin.go              |  24 ++
 .../gremlin-javascript/test/cucumber/gremlin.js    |  24 ++
 gremlin-language/src/main/antlr4/Gremlin.g4        |   1 +
 gremlin-python/src/main/python/radish/gremlin.py   |  24 ++
 .../test/features/sideEffect/Aggregate.feature     | 442 +++++++++++++++++----
 14 files changed, 526 insertions(+), 90 deletions(-)

diff --cc 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
index 5bb2c85b3a,af9267b4a9..39828e17d9
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
@@@ -202,7 -202,7 +202,7 @@@ public enum Operator implements BinaryO
       */
      sumLong {
          public Object apply(final Object a, final Object b) {
 -            return (long) a + (long) b;
 +            return NumberHelper.add((long) a, (long) b);
          }
-     }
+     };
  }
diff --cc 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
index b23e6fad8f,41eb40a533..92ee518836
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
@@@ -60,16 -57,11 +60,17 @@@ public class TraversalSourceSelfMethodV
                  {"withSack('hello')", g.withSack("hello")},
                  {"withSack('hello', addAll)", g.withSack("hello", 
Operator.addAll)},
                  {"withSideEffect('hello', 12)", g.withSideEffect("hello", 
12)},
+                 {"withSideEffect('hello', 12, sum)", 
g.withSideEffect("hello", 12, Operator.sum)},
                  {"withStrategies(ReadOnlyStrategy)", 
g.withStrategies(ReadOnlyStrategy.instance())},
                  {"withStrategies(new 
EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", 
g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())},
 +                {"withStrategies(EdgeLabelVerificationStrategy(logWarning: 
true, throwException: true))", 
g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())},
 +                {"withStrategies(ReadOnlyStrategy, 
EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", 
g.withStrategies(ReadOnlyStrategy.instance(), 
EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())},
                  {"withStrategies(ReadOnlyStrategy, new 
EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", 
g.withStrategies(ReadOnlyStrategy.instance(), 
EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())},
                  {"withStrategies(new 
EdgeLabelVerificationStrategy(logWarning: true, throwException: true), 
ReadOnlyStrategy)", 
g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create(),
 ReadOnlyStrategy.instance())},
 +                {"withoutStrategies(CountStrategy)", 
g.withoutStrategies(CountStrategy.class)},
 +                {"withoutStrategies(CountStrategy, EarlyLimitStrategy)", 
g.withoutStrategies(CountStrategy.class, EarlyLimitStrategy.class)},
 +                {"withoutStrategies(CountStrategy, EarlyLimitStrategy, 
PathRetractionStrategy)", g.withoutStrategies(CountStrategy.class, 
EarlyLimitStrategy.class, PathRetractionStrategy.class)},
 +                {"withoutStrategies(CountStrategy, EarlyLimitStrategy, 
PathRetractionStrategy, RepeatUnrollStrategy)", 
g.withoutStrategies(CountStrategy.class, EarlyLimitStrategy.class, 
PathRetractionStrategy.class, RepeatUnrollStrategy.class)},
                  {"with('requestId', '7c55d4d7-809a-4f84-9720-63b48cb2fd14')", 
g.with("requestId", "7c55d4d7-809a-4f84-9720-63b48cb2fd14")},
                  {"with('requestId')", g.with("requestId")},
                  {"withSideEffect('hello', ['one':1])", 
g.withSideEffect("hello", map)},
diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 12449a0d9d,72780761d0..2bc63ed4e7
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@@ -1442,39 -1423,62 +1442,63 @@@ namespace Gremlin.Net.IntegrationTest.G
                 {"g_V_out_aggregateXaX_path", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out().Aggregate("a").Path()}}, 
                 
{"g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("person").Aggregate("x").By("age").Cap<object>("x").As("y").Select<object>("y")}},
 
                 {"g_V_aggregateXxX_byXageX_capXxX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate("x").By("age").Cap<object>("x")}}, 
 -               {"g_V_aggregateXlocal_xX_byXageX_capXxX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate(Scope.Local,"x").By("age").Cap<object>("x")}}, 
 -               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new 
List<object> {})).V().Aggregate(Scope.Local,"x").By("age").Cap<object>("x")}}, 
 -               {"g_V_aggregateXlocal_a_nameX_out_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate(Scope.Local,"a").By("name").Out().Cap<object>("a")}}, 
 -               
{"g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Aggregate(Scope.Local,"a").By("name").Out().Aggregate(Scope.Local,"a").By("name").Values<object>("name").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",p["xx1"]).V().Both().Values<object>("name").Aggregate(Scope.Local,"a").Cap<object>("a")}},
 
 -               
{"g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Aggregate(Scope.Local,"a").By(__.OutE("created").Count()).Out().Out().Aggregate(Scope.Local,"a").By(__.InE("created").Values<object>("weight").Sum<object>()).Cap<object>("a")}},
 
 +               {"g_V_aggregateXlocal_xX_byXageX_capXxX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate(Scope.Local, "x").By("age").Cap<object>("x")}}, 
 +               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new 
ProductiveByStrategy()).V().Aggregate(Scope.Local, 
"x").By("age").Cap<object>("x")}}, 
 +               {"g_V_aggregateXlocal_a_nameX_out_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate(Scope.Local, "a").By("name").Out().Cap<object>("a")}}, 
 +               
{"g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Aggregate(Scope.Local, 
"a").By("name").Out().Aggregate(Scope.Local, 
"a").By("name").Values<object>("name").Cap<object>("a")}}, 
 +               
{"g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 
p["xx1"]).V().Both().Values<object>("name").Aggregate(Scope.Local, 
"a").Cap<object>("a")}}, 
 +               
{"g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", new HashSet<object> { "alice" 
}).V().Both().Values<object>("name").Aggregate(Scope.Local, 
"a").Cap<object>("a")}}, 
 +               
{"g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate(Scope.Local, 
"a").By(__.OutE("created").Count()).Out().Out().Aggregate(Scope.Local, 
"a").By(__.InE("created").Values<object>("weight").Sum<object>()).Cap<object>("a")}},
 
                 {"g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}},
 
 -               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new 
List<object> 
{})).V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}},
 
 +               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new 
ProductiveByStrategy()).V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}},
 
                 {"g_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}}, 
 -               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new 
List<object> 
{})).V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}}, 
 -               
{"g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Aggregate("a").Has("person","age",P.Gte(30)).Cap<object>("a").Unfold<object>().Values<object>("name")}},
 
 -               {"g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Sum).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Sum).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",123,Operator.Minus).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",123,Operator.Minus).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               {"g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",2,Operator.Mult).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",2,Operator.Mult).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",876960,Operator.Div).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",876960,Operator.Div).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               {"g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Min).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               {"g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",100,Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",100,Operator.Min).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               {"g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",1,Operator.Max).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               {"g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",100,Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",100,Operator.Max).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",true,Operator.And).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",true,Operator.And).V().Constant<object>(false).Aggregate(Scope.Local,"a").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",true,Operator.Or).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",true,Operator.Or).V().Constant<object>(false).Aggregate(Scope.Local,"a").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",p["xx1"],Operator.AddAll).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",p["xx1"],Operator.AddAll).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",p["xx1"],Operator.Assign).V().Aggregate("a").By("age").Cap<object>("a")}},
 
 -               
{"g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.WithSideEffect("a",p["xx1"],Operator.Assign).V().Order().By("age").Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}},
 
 +               
{"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new 
ProductiveByStrategy()).V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}},
 
 +               
{"g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Aggregate("a").Has("person", "age", 
P.Gte(30)).Cap<object>("a").Unfold<object>().Values<object>("name")}}, 
++               {"g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, 
Operator.Sum).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, Operator.Sum).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 123, 
Operator.Minus).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 123, Operator.Minus).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               {"g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 2, 
Operator.Mult).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 2, Operator.Mult).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 876960, 
Operator.Div).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 876960, Operator.Div).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               {"g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, 
Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, Operator.Min).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               {"g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 100, 
Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 100, Operator.Min).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               {"g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, 
Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 1, Operator.Max).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               {"g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 100, 
Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", 100, Operator.Max).V().Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", true, 
Operator.And).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", true, 
Operator.And).V().Constant<object>(false).Aggregate(Scope.Local, 
"a").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", true, 
Operator.Or).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", true, 
Operator.Or).V().Constant<object>(false).Aggregate(Scope.Local, 
"a").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", p["xx1"], 
Operator.AddAll).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", p["xx1"], 
Operator.AddAll).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", p["xx1"], 
Operator.Assign).V().Aggregate("a").By("age").Cap<object>("a")}}, 
++               
{"g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithSideEffect("a", p["xx1"], 
Operator.Assign).V().Order().By("age").Aggregate(Scope.Local, 
"a").By("age").Cap<object>("a")}}, 
                 {"g_V_fail", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fail()}}, 
                 {"g_V_failXmsgX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fail("msg")}}, 
 -               {"g_V_unionXout_failX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().Union<object>(__.Out(),__.Fail())}}, 
 -               {"g_V_group_byXnameX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().Group<object,object>().By("name")}}, 
 -               {"g_V_group_byXageX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().Group<object,object>().By("age")}}, 
 -               {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new 
List<object> {})).V().Group<object,object>().By("age")}}, 
 -               {"g_V_group_byXnameX_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object,object>().By("name").By("age")}}, 
 -               {"g_V_group_byXnameX_by", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().Group<object,object>().By("name").By()}}, 
 -               {"g_V_hasXlangX_group_byXlangX_byXcountX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("lang").Group<object,object>().By("lang").By(__.Count())}}, 
 -               {"g_V_group_byXoutE_countX_byXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Order().By("name").Group<object,object>().By(__.OutE().Count()).By("name")}},
 
 -               
{"g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Repeat(__.Both("followedBy")).Times(2).Group<object,object>().By("songType").By(__.Count())}},
 
 -               {"g_V_group_byXname_substring_1X_byXconstantX1XX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object,object>().By((IFunction) 
p["l1"]).By(__.Constant<object>(1))}}, 
 -               
{"g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Out().Group<object,object>().By(T.Label).Select<object>("person").Unfold<object>().Out("created").Values<object>("name").Limit<object>(2)}},
 
 -               
{"g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("song").Group<object,object>().By("name").By(__.Properties<object>().GroupCount<object>().By(T.Label))}},
 
 -               
{"g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Out("followedBy").Group<object,object>().By("songType").By(__.BothE().Group<object,object>().By(T.Label).By(__.Values<object>("weight").Sum<object>()))}},
 
 -               
{"g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Group<object,object>().By(T.Label).By(__.BothE().Group("a").By(T.Label).By(__.Values<object>("weight").Sum<object>()).Values<object>("weight").Sum<object>())}},
 
 -               
{"g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("person").As("p").Out("created").Group<object,object>().By("name").By(__.Select<object>("p").Values<object>("age").Sum<object>())}},
 
 -               {"g_V_group_byXlabelX_byXlabel_countX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object,object>().By(__.Label()).By(__.Label().Count())}}, 
 +               {"g_V_unionXout_failX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().Union<object>(__.Out(), __.Fail())}}, 
 +               {"g_V_group_byXnameX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, 
object>().By("name")}}, 
 +               {"g_V_group_byXageX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, 
object>().By("age")}}, 
 +               {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Group<object, 
object>().By("age")}}, 
 +               {"g_V_group_byXnameX_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object, object>().By("name").By("age")}}, 
 +               {"g_V_group_byXnameX_by", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, 
object>().By("name").By()}}, 
 +               {"g_V_hasXlangX_group_byXlangX_byXcountX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("lang").Group<object, object>().By("lang").By(__.Count())}}, 
 +               {"g_V_group_byXoutE_countX_byXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Order().By("name").Group<object, 
object>().By(__.OutE().Count()).By("name")}}, 
 +               
{"g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Repeat(__.Both("followedBy")).Times(2).Group<object, 
object>().By("songType").By(__.Count())}}, 
 +               {"g_V_group_byXname_substring_1X_byXconstantX1XX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>()},  
// skipping as it contains a lambda
 +               
{"g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out().Group<object, 
object>().By(T.Label).Select<object>("person").Unfold<object>().Out("created").Values<object>("name").Limit<object>(2)}},
 
 +               
{"g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasLabel("song").Group<object, 
object>().By("name").By(__.Properties<object>().GroupCount<object>().By(T.Label))}},
 
 +               
{"g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out("followedBy").Group<object, 
object>().By("songType").By(__.BothE().Group<object, 
object>().By(T.Label).By(__.Values<object>("weight").Sum<object>()))}}, 
 +               
{"g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object, 
object>().By(T.Label).By(__.BothE().Group("a").By(T.Label).By(__.Values<object>("weight").Sum<object>()).Values<object>("weight").Sum<object>())}},
 
 +               
{"g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasLabel("person").As("p").Out("created").Group<object, 
object>().By("name").By(__.Select<object>("p").Values<object>("age").Sum<object>())}},
 
 +               {"g_V_group_byXlabelX_byXlabel_countX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Group<object, object>().By(__.Label()).By(__.Label().Count())}}, 
                 {"g_V_outXcreatedX_groupCount_byXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out("created").GroupCount<object>().By("name")}}, 
                 {"g_V_groupCount_byXageX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().GroupCount<object>().By("age")}}, 
 -               
{"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new 
List<object> {})).V().GroupCount<object>().By("age")}}, 
 +               
{"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.WithStrategies(new 
ProductiveByStrategy()).V().GroupCount<object>().By("age")}}, 
                 {"g_V_outXcreatedX_name_groupCount", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out("created").Values<object>("name").GroupCount<object>()}}, 
                 {"g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Out("created").GroupCount("a").By("name").Cap<object>("a")}}, 
                 {"g_V_outXcreatedX_name_groupCountXaX_capXaX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Out("created").Values<object>("name").GroupCount("a").Cap<object>("a")}},
 
diff --cc gremlin-go/driver/cucumber/gremlin.go
index 1097cb2a5d,e68bddb1c8..4e12df2805
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@@ -1418,13 -1399,36 +1418,37 @@@ var translationMap = map[string][]func(
      "g_V_aggregateXlocal_a_nameX_out_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Aggregate(gremlingo.Scope.Local, 
"a").By("name").Out().Cap("a")}}, 
      
"g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Aggregate(gremlingo.Scope.Local, 
"a").By("name").Out().Aggregate(gremlingo.Scope.Local, 
"a").By("name").Values("name").Cap("a")}}, 
      "g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 
p["xx1"]).V().Both().Values("name").Aggregate(gremlingo.Scope.Local, 
"a").Cap("a")}}, 
 +    "g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 
gremlingo.NewSimpleSet("alice")).V().Both().Values("name").Aggregate(gremlingo.Scope.Local,
 "a").Cap("a")}}, 
      
"g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Aggregate(gremlingo.Scope.Local, 
"a").By(gremlingo.T__.OutE("created").Count()).Out().Out().Aggregate(gremlingo.Scope.Local,
 "a").By(gremlingo.T__.InE("created").Values("weight").Sum()).Cap("a")}}, 
      "g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}},
 
 -    
"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.WithStrategies(gremlingo.ProductiveByStrategy(gremlingo.ProductiveByStrategyConfig{ProductiveKeys:
 
[]string{}})).V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}},
 
 +    
"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.WithStrategies(gremlingo.ProductiveByStrategy()).V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}},
 
      "g_V_aggregateXxX_byXout_order_byXnameXX_capXxX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}}, 
 -    
"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.WithStrategies(gremlingo.ProductiveByStrategy(gremlingo.ProductiveByStrategyConfig{ProductiveKeys:
 
[]string{}})).V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}},
 
 +    
"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.WithStrategies(gremlingo.ProductiveByStrategy()).V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}},
 
      "g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Aggregate("a").Has("person", "age", 
gremlingo.P.Gte(30)).Cap("a").Unfold().Values("name")}}, 
+     "g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Sum).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Sum).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 123, 
gremlingo.Operator.Minus).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 123, 
gremlingo.Operator.Minus).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 2, 
gremlingo.Operator.Mult).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 2, 
gremlingo.Operator.Mult).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 876960, 
gremlingo.Operator.Div).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 876960, 
gremlingo.Operator.Div).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Min).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, 
gremlingo.Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, 
gremlingo.Operator.Min).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, 
gremlingo.Operator.Max).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, 
gremlingo.Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, 
gremlingo.Operator.Max).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", true, 
gremlingo.Operator.And).V().Constant(false).Aggregate("a").Cap("a")}}, 
+     
"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", true, 
gremlingo.Operator.And).V().Constant(false).Aggregate(gremlingo.Scope.Local, 
"a").Cap("a")}}, 
+     "g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", true, 
gremlingo.Operator.Or).V().Constant(false).Aggregate("a").Cap("a")}}, 
+     
"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", true, 
gremlingo.Operator.Or).V().Constant(false).Aggregate(gremlingo.Scope.Local, 
"a").Cap("a")}}, 
+     "g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], 
gremlingo.Operator.AddAll).V().Aggregate("a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], 
gremlingo.Operator.AddAll).V().Aggregate(gremlingo.Scope.Local, 
"a").By("age").Cap("a")}}, 
+     "g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], 
gremlingo.Operator.Assign).V().Aggregate("a").By("age").Cap("a")}}, 
+     
"g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], 
gremlingo.Operator.Assign).V().Order().By("age").Aggregate(gremlingo.Scope.Local,
 "a").By("age").Cap("a")}}, 
      "g_V_fail": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fail()}}, 
      "g_V_failXmsgX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fail("msg")}}, 
      "g_V_unionXout_failX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Union(gremlingo.T__.Out(), gremlingo.T__.Fail())}}, 
diff --cc 
gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
index 2303335aae,abbee0f7ef..d4ba8ca726
--- 
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
+++ 
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
@@@ -1434,24 -1414,47 +1434,48 @@@ const gremlins = 
      g_V_out_aggregateXaX_path: [function({g}) { return 
g.V().out().aggregate("a").path() }], 
      g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX: 
[function({g}) { return 
g.V().hasLabel("person").aggregate("x").by("age").cap("x").as("y").select("y") 
}], 
      g_V_aggregateXxX_byXageX_capXxX: [function({g}) { return 
g.V().aggregate("x").by("age").cap("x") }], 
 -    g_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return 
g.V().aggregate(Scope.local,"x").by("age").cap("x") }], 
 -    
g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX: 
[function({g}) { return g.withStrategies(new 
ProductiveByStrategy({productiveKeys:[]})).V().aggregate(Scope.local,"x").by("age").cap("x")
 }], 
 -    g_V_aggregateXlocal_a_nameX_out_capXaX: [function({g}) { return 
g.V().aggregate(Scope.local,"a").by("name").out().cap("a") }], 
 -    
g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX: 
[function({g, vid1}) { return 
g.V(vid1).aggregate(Scope.local,"a").by("name").out().aggregate(Scope.local,"a").by("name").values("name").cap("a")
 }], 
 -    g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX: 
[function({g, xx1}) { return 
g.withSideEffect("a",xx1).V().both().values("name").aggregate(Scope.local,"a").cap("a")
 }], 
 -    
g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX:
 [function({g}) { return 
g.V().aggregate(Scope.local,"a").by(__.outE("created").count()).out().out().aggregate(Scope.local,"a").by(__.inE("created").values("weight").sum()).cap("a")
 }], 
 +    g_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return 
g.V().aggregate(Scope.local, "x").by("age").cap("x") }], 
 +    
g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX: 
[function({g}) { return g.withStrategies(new 
ProductiveByStrategy()).V().aggregate(Scope.local, "x").by("age").cap("x") }], 
 +    g_V_aggregateXlocal_a_nameX_out_capXaX: [function({g}) { return 
g.V().aggregate(Scope.local, "a").by("name").out().cap("a") }], 
 +    
g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX: 
[function({g, vid1}) { return g.V(vid1).aggregate(Scope.local, 
"a").by("name").out().aggregate(Scope.local, 
"a").by("name").values("name").cap("a") }], 
 +    g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX: 
[function({g, xx1}) { return g.withSideEffect("a", 
xx1).V().both().values("name").aggregate(Scope.local, "a").cap("a") }], 
 +    g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX: 
[function({g}) { return g.withSideEffect("a", new 
Set(["alice"])).V().both().values("name").aggregate(Scope.local, "a").cap("a") 
}], 
 +    
g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX:
 [function({g}) { return g.V().aggregate(Scope.local, 
"a").by(__.outE("created").count()).out().out().aggregate(Scope.local, 
"a").by(__.inE("created").values("weight").sum()).cap("a") }], 
      g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX: [function({g}) { 
return g.V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x") }], 
 -    
g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX:
 [function({g}) { return g.withStrategies(new 
ProductiveByStrategy({productiveKeys:[]})).V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x")
 }], 
 +    
g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX:
 [function({g}) { return g.withStrategies(new 
ProductiveByStrategy()).V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x")
 }], 
      g_V_aggregateXxX_byXout_order_byXnameXX_capXxX: [function({g}) { return 
g.V().aggregate("x").by(__.out().order().by("name")).cap("x") }], 
 -    
g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX:
 [function({g}) { return g.withStrategies(new 
ProductiveByStrategy({productiveKeys:[]})).V().aggregate("x").by(__.out().order().by("name")).cap("x")
 }], 
 -    g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX: 
[function({g}) { return 
g.V().aggregate("a").has("person","age",P.gte(30)).cap("a").unfold().values("name")
 }], 
 -    g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return 
g.withSideEffect("a",1,Operator.sum).V().aggregate("a").by("age").cap("a") }], 
 -    g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",1,Operator.sum).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",123,Operator.minus).V().aggregate("a").by("age").cap("a") 
}], 
 -    g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",123,Operator.minus).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return 
g.withSideEffect("a",2,Operator.mult).V().aggregate("a").by("age").cap("a") }], 
 -    g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",2,Operator.mult).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",876960,Operator.div).V().aggregate("a").by("age").cap("a") 
}], 
 -    g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",876960,Operator.div).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return 
g.withSideEffect("a",1,Operator.min).V().aggregate("a").by("age").cap("a") }], 
 -    g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",1,Operator.min).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return 
g.withSideEffect("a",100,Operator.min).V().aggregate("a").by("age").cap("a") 
}], 
 -    g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",100,Operator.min).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return 
g.withSideEffect("a",1,Operator.max).V().aggregate("a").by("age").cap("a") }], 
 -    g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",1,Operator.max).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return 
g.withSideEffect("a",100,Operator.max).V().aggregate("a").by("age").cap("a") 
}], 
 -    g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",100,Operator.max).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",true,Operator.and).V().constant(false).aggregate("a").cap("a")
 }], 
 -    g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",true,Operator.and).V().constant(false).aggregate(Scope.local,"a").cap("a")
 }], 
 -    g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",true,Operator.or).V().constant(false).aggregate("a").cap("a")
 }], 
 -    g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX: 
[function({g}) { return 
g.withSideEffect("a",true,Operator.or).V().constant(false).aggregate(Scope.local,"a").cap("a")
 }], 
 -    g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX: 
[function({g, xx1}) { return 
g.withSideEffect("a",xx1,Operator.addAll).V().aggregate("a").by("age").cap("a") 
}], 
 -    g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g, xx1}) { return 
g.withSideEffect("a",xx1,Operator.addAll).V().aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 -    g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX: 
[function({g, xx1}) { return 
g.withSideEffect("a",xx1,Operator.assign).V().aggregate("a").by("age").cap("a") 
}], 
 -    
g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX:
 [function({g, xx1}) { return 
g.withSideEffect("a",xx1,Operator.assign).V().order().by("age").aggregate(Scope.local,"a").by("age").cap("a")
 }], 
 +    
g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX:
 [function({g}) { return g.withStrategies(new 
ProductiveByStrategy()).V().aggregate("x").by(__.out().order().by("name")).cap("x")
 }], 
 +    g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX: 
[function({g}) { return g.V().aggregate("a").has("person", "age", 
P.gte(30)).cap("a").unfold().values("name") }], 
++    g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return g.withSideEffect("a", 1, 
Operator.sum).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 1, 
Operator.sum).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 123, 
Operator.minus).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 123, 
Operator.minus).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return g.withSideEffect("a", 2, 
Operator.mult).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 2, 
Operator.mult).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 876960, 
Operator.div).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 876960, 
Operator.div).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return g.withSideEffect("a", 1, 
Operator.min).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 1, 
Operator.min).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return g.withSideEffect("a", 100, 
Operator.min).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 100, 
Operator.min).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { 
return g.withSideEffect("a", 1, 
Operator.max).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 1, 
Operator.max).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) 
{ return g.withSideEffect("a", 100, 
Operator.max).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g}) { return g.withSideEffect("a", 100, 
Operator.max).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX: 
[function({g}) { return g.withSideEffect("a", true, 
Operator.and).V().constant(false).aggregate("a").cap("a") }], 
++    g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX: 
[function({g}) { return g.withSideEffect("a", true, 
Operator.and).V().constant(false).aggregate(Scope.local, "a").cap("a") }], 
++    g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX: 
[function({g}) { return g.withSideEffect("a", true, 
Operator.or).V().constant(false).aggregate("a").cap("a") }], 
++    g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX: 
[function({g}) { return g.withSideEffect("a", true, 
Operator.or).V().constant(false).aggregate(Scope.local, "a").cap("a") }], 
++    g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX: 
[function({g, xx1}) { return g.withSideEffect("a", xx1, 
Operator.addAll).V().aggregate("a").by("age").cap("a") }], 
++    g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX: 
[function({g, xx1}) { return g.withSideEffect("a", xx1, 
Operator.addAll).V().aggregate(Scope.local, "a").by("age").cap("a") }], 
++    g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX: 
[function({g, xx1}) { return g.withSideEffect("a", xx1, 
Operator.assign).V().aggregate("a").by("age").cap("a") }], 
++    
g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX:
 [function({g, xx1}) { return g.withSideEffect("a", xx1, 
Operator.assign).V().order().by("age").aggregate(Scope.local, 
"a").by("age").cap("a") }], 
      g_V_fail: [function({g}) { return g.V().fail() }], 
      g_V_failXmsgX: [function({g}) { return g.V().fail("msg") }], 
 -    g_V_unionXout_failX: [function({g}) { return 
g.V().union(__.out(),__.fail()) }], 
 +    g_V_unionXout_failX: [function({g}) { return g.V().union(__.out(), 
__.fail()) }], 
      g_V_group_byXnameX: [function({g}) { return g.V().group().by("name") }], 
      g_V_group_byXageX: [function({g}) { return g.V().group().by("age") }], 
 -    g_withStrategiesXProductiveByStrategyX_V_group_byXageX: [function({g}) { 
return g.withStrategies(new 
ProductiveByStrategy({productiveKeys:[]})).V().group().by("age") }], 
 +    g_withStrategiesXProductiveByStrategyX_V_group_byXageX: [function({g}) { 
return g.withStrategies(new ProductiveByStrategy()).V().group().by("age") }], 
      g_V_group_byXnameX_byXageX: [function({g}) { return 
g.V().group().by("name").by("age") }], 
      g_V_group_byXnameX_by: [function({g}) { return 
g.V().group().by("name").by() }], 
      g_V_hasXlangX_group_byXlangX_byXcountX: [function({g}) { return 
g.V().has("lang").group().by("lang").by(__.count()) }], 
diff --cc gremlin-python/src/main/python/radish/gremlin.py
index b3b4abadc1,562e4ff6bd..c7361542a2
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@@ -1410,30 -1390,53 +1410,54 @@@ world.gremlins = 
      'g_V_out_out_properties_asXheadX_path_order_byXdescX_selectXheadX_value': 
[(lambda 
g:g.V().out().out().properties().as_('head').path().order().by(Order.desc).select('head').value())],
 
      'g_V_out_out_values_asXheadX_path_order_byXascX_selectXheadX': [(lambda 
g:g.V().out().out().values().as_('head').path().order().by(Order.asc).select('head'))],
 
      'g_V_out_out_values_asXheadX_path_order_byXdescX_selectXheadX': [(lambda 
g:g.V().out().out().values().as_('head').path().order().by(Order.desc).select('head'))],
 
 -    'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda 
g:g.V().name.aggregate('x').cap('x'))], 
 -    'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda 
g:g.V().name.aggregate(Scope.global_,'x').cap('x'))], 
 +    'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda 
g:g.V().values('name').aggregate('x').cap('x'))], 
 +    'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda 
g:g.V().values('name').aggregate(Scope.global_, 'x').cap('x'))], 
      'g_V_aggregateXxX_byXnameX_capXxX': [(lambda 
g:g.V().aggregate('x').by('name').cap('x'))], 
      'g_V_out_aggregateXaX_path': [(lambda 
g:g.V().out().aggregate('a').path())], 
 -    'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': 
[(lambda 
g:g.V().hasLabel('person').aggregate('x').by('age').cap('x').as_('y').select('y'))],
 
 +    'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': 
[(lambda 
g:g.V().has_label('person').aggregate('x').by('age').cap('x').as_('y').select('y'))],
 
      'g_V_aggregateXxX_byXageX_capXxX': [(lambda 
g:g.V().aggregate('x').by('age').cap('x'))], 
 -    'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda 
g:g.V().aggregate(Scope.local,'x').by('age').cap('x'))], 
 -    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': 
[(lambda 
g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'},
 
'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate(Scope.local,'x').by('age').cap('x'))],
 
 -    'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda 
g:g.V().aggregate(Scope.local,'a').by('name').out().cap('a'))], 
 -    
'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX':
 [(lambda g, 
vid1=None:g.V(vid1).aggregate(Scope.local,'a').by('name').out().aggregate(Scope.local,'a').by('name').name.cap('a'))],
 
 -    'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda 
g, 
xx1=None:g.withSideEffect('a',xx1).V().both().name.aggregate(Scope.local,'a').cap('a'))],
 
 -    
'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX':
 [(lambda 
g:g.V().aggregate(Scope.local,'a').by(__.outE('created').count()).out().out().aggregate(Scope.local,'a').by(__.inE('created').weight.sum_()).cap('a'))],
 
 -    'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda 
g:g.V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))], 
 -    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX':
 [(lambda 
g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'},
 
'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))],
 
 +    'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda 
g:g.V().aggregate(Scope.local, 'x').by('age').cap('x'))], 
 +    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': 
[(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate(Scope.local, 
'x').by('age').cap('x'))], 
 +    'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda 
g:g.V().aggregate(Scope.local, 'a').by('name').out().cap('a'))], 
 +    
'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX':
 [(lambda g, vid1=None:g.V(vid1).aggregate(Scope.local, 
'a').by('name').out().aggregate(Scope.local, 
'a').by('name').values('name').cap('a'))], 
 +    'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda 
g, xx1=None:g.with_side_effect('a', 
xx1).V().both().values('name').aggregate(Scope.local, 'a').cap('a'))], 
 +    'g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX': 
[(lambda g:g.with_side_effect('a', 
{'alice'}).V().both().values('name').aggregate(Scope.local, 'a').cap('a'))], 
 +    
'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX':
 [(lambda g:g.V().aggregate(Scope.local, 
'a').by(__.out_e('created').count()).out().out().aggregate(Scope.local, 
'a').by(__.in_e('created').values('weight').sum_()).cap('a'))], 
 +    'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda 
g:g.V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))], 
 +    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX':
 [(lambda 
g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))],
 
      'g_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda 
g:g.V().aggregate('x').by(__.out().order().by('name')).cap('x'))], 
 -    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX':
 [(lambda 
g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'},
 
'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.out().order().by('name')).cap('x'))],
 
 -    'g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX': 
[(lambda 
g:g.V().aggregate('a').has('person','age',P.gte(30)).cap('a').unfold().name)], 
 -    'g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.sum_).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.sum_).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',123,Operator.minus).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda 
g:g.withSideEffect('a',123,Operator.minus).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',2,Operator.mult).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda 
g:g.withSideEffect('a',2,Operator.mult).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',876960,Operator.div).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda 
g:g.withSideEffect('a',876960,Operator.div).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.min_).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.min_).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',100,Operator.min_).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda 
g:g.withSideEffect('a',100,Operator.min_).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.max_).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',1,Operator.max_).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.withSideEffect('a',100,Operator.max_).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda 
g:g.withSideEffect('a',100,Operator.max_).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX': 
[(lambda 
g:g.withSideEffect('a',True,Operator.and_).V().constant(False).aggregate('a').cap('a'))],
 
 -    
'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX': 
[(lambda 
g:g.withSideEffect('a',True,Operator.and_).V().constant(False).aggregate(Scope.local,'a').cap('a'))],
 
 -    'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX': 
[(lambda 
g:g.withSideEffect('a',True,Operator.or_).V().constant(False).aggregate('a').cap('a'))],
 
 -    
'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX': 
[(lambda 
g:g.withSideEffect('a',True,Operator.or_).V().constant(False).aggregate(Scope.local,'a').cap('a'))],
 
 -    'g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g, 
xx1=None:g.withSideEffect('a',xx1,Operator.addAll).V().aggregate('a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g, 
xx1=None:g.withSideEffect('a',xx1,Operator.addAll).V().aggregate(Scope.local,'a').by('age').cap('a'))],
 
 -    'g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g, 
xx1=None:g.withSideEffect('a',xx1,Operator.assign).V().aggregate('a').by('age').cap('a'))],
 
 -    
'g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX':
 [(lambda g, 
xx1=None:g.withSideEffect('a',xx1,Operator.assign).V().order().by('age').aggregate(Scope.local,'a').by('age').cap('a'))],
 
 +    
'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX':
 [(lambda 
g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.out().order().by('name')).cap('x'))],
 
 +    'g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX': 
[(lambda g:g.V().aggregate('a').has('person', 'age', 
P.gte(30)).cap('a').unfold().values('name'))], 
++    'g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, 
Operator.sum_).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, Operator.sum_).V().aggregate(Scope.local, 
'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 123, 
Operator.minus).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g:g.with_side_effect('a', 123, 
Operator.minus).V().aggregate(Scope.local, 'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 2, 
Operator.mult).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g:g.with_side_effect('a', 2, Operator.mult).V().aggregate(Scope.local, 
'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 876960, 
Operator.div).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g:g.with_side_effect('a', 876960, 
Operator.div).V().aggregate(Scope.local, 'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, 
Operator.min_).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, Operator.min_).V().aggregate(Scope.local, 
'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 100, 
Operator.min_).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g:g.with_side_effect('a', 100, 
Operator.min_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, 
Operator.max_).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 1, Operator.max_).V().aggregate(Scope.local, 
'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g:g.with_side_effect('a', 100, 
Operator.max_).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g:g.with_side_effect('a', 100, 
Operator.max_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX': 
[(lambda g:g.with_side_effect('a', True, 
Operator.and_).V().constant(False).aggregate('a').cap('a'))], 
++    
'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX': 
[(lambda g:g.with_side_effect('a', True, 
Operator.and_).V().constant(False).aggregate(Scope.local, 'a').cap('a'))], 
++    'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX': 
[(lambda g:g.with_side_effect('a', True, 
Operator.or_).V().constant(False).aggregate('a').cap('a'))], 
++    
'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX': 
[(lambda g:g.with_side_effect('a', True, 
Operator.or_).V().constant(False).aggregate(Scope.local, 'a').cap('a'))], 
++    'g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g, xx1=None:g.with_side_effect('a', xx1, 
Operator.add_all).V().aggregate('a').by('age').cap('a'))], 
++    'g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX': 
[(lambda g, xx1=None:g.with_side_effect('a', xx1, 
Operator.add_all).V().aggregate(Scope.local, 'a').by('age').cap('a'))], 
++    'g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX': [(lambda 
g, xx1=None:g.with_side_effect('a', xx1, 
Operator.assign).V().aggregate('a').by('age').cap('a'))], 
++    
'g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX':
 [(lambda g, xx1=None:g.with_side_effect('a', xx1, 
Operator.assign).V().order().by('age').aggregate(Scope.local, 
'a').by('age').cap('a'))], 
      'g_V_fail': [(lambda g:g.V().fail())], 
      'g_V_failXmsgX': [(lambda g:g.V().fail('msg'))], 
 -    'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(),__.fail()))], 
 +    'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(), __.fail()))], 
      'g_V_group_byXnameX': [(lambda g:g.V().group().by('name'))], 
      'g_V_group_byXageX': [(lambda g:g.V().group().by('age'))], 
 -    'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda 
g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'},
 
'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().group().by('age'))],
 
 +    'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda 
g:g.with_strategies(ProductiveByStrategy()).V().group().by('age'))], 
      'g_V_group_byXnameX_byXageX': [(lambda 
g:g.V().group().by('name').by('age'))], 
      'g_V_group_byXnameX_by': [(lambda g:g.V().group().by('name').by())], 
      'g_V_hasXlangX_group_byXlangX_byXcountX': [(lambda 
g:g.V().has('lang').group().by('lang').by(__.count()))], 

Reply via email to