/**
* f3S
* This method implements the function logic of the CAL function Cal.Utilities.DirectedGraph.partition
*/
public final RTValue f3S(RTValue $dictvarCal_Core_Prelude_Eq_14, RTValue partitionFn, RTValue graph, RTExecutionContext $ec) throws CALExecutorException {
RTValue letVar_pattern_list1_list2 =
Partition.$pattern_list1_list2$6$def_Lazy(graph, partitionFn, $ec);
RTValue letVar_list1 =
Partition.list1$4$def_Lazy(letVar_pattern_list1_list2, $ec);
RTValue letVar_list2 =
Partition.list2$5$def_Lazy(letVar_pattern_list1_list2, $ec);
// Top level supercombinator logic
RTCons $case1 = ((RTCons)(java.lang.Object)graph.evaluate($ec));
// Cal.Utilities.DirectedGraph.DirectedGraph
// Decompose data type to access members.
TYPE_Directed_Graph.CAL_Directed_Graph $dcCaseVar1 =
((TYPE_Directed_Graph.CAL_Directed_Graph)(java.lang.Object)$case1);
int nextVertexNum$U = $dcCaseVar1.get_nextVertexNum_As_Int();
RTValue $_ = $dcCaseVar1.get_vertexMap();
RTValue edges = $dcCaseVar1.get_edges();
RTValue letVar_vertexNums1 =
Partition.vertexNums1$7$def_Lazy(letVar_list1, $ec);
RTValue letVar_vertexNums2 =
Partition.vertexNums2$8$def_Lazy(letVar_list2, $ec);
return
RTRecordValue.makeTupleRecord(
new RTValue[] {Partition.graph1$18$def_Lazy(edges, letVar_vertexNums2, letVar_vertexNums1, letVar_list1, nextVertexNum$U, $ec), Partition.graph2$19$def_Lazy(letVar_list2, edges, letVar_vertexNums1, letVar_vertexNums2, nextVertexNum$U, $ec)});