{
  "class": "ModuleNode",
  "children": [
    {
      "class": "VersionDirective",
      "children": [
        {
          "class": "VersionMajor",
          "value": "2"
        },
        {
          "class": "VersionMinor",
          "value": "0"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "AnnotationTarget"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "targets"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "UnionTypeNode",
                      "children": [
                        {
                          "class": "LiteralTypeNode",
                          "children": [
                            {
                              "class": "StringNode",
                              "value": "Function"
                            }
                          ]
                        },
                        {
                          "class": "LiteralTypeNode",
                          "children": [
                            {
                              "class": "StringNode",
                              "value": "Parameters"
                            }
                          ]
                        },
                        {
                          "class": "LiteralTypeNode",
                          "children": [
                            {
                              "class": "StringNode",
                              "value": "Variable"
                            }
                          ]
                        },
                        {
                          "class": "LiteralTypeNode",
                          "children": [
                            {
                              "class": "StringNode",
                              "value": "Import"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Since"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "version"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "RuntimePermissions"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "permissions"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Function"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "DesignOnlyType"
        },
        {
          "class": "AnnotationParametersNode"
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Parameter"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "TailRec"
        },
        {
          "class": "AnnotationParametersNode"
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Function"
                        },
                        {
                          "class": "StringNode",
                          "value": "Variable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Internal"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "permits"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Experimental"
        },
        {
          "class": "AnnotationParametersNode"
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.4.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Deprecated"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "since"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            },
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "replacement"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.4.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Labels"
        },
        {
          "class": "AnnotationParametersNode",
          "children": [
            {
              "class": "AnnotationParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "labels"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Function"
                        },
                        {
                          "class": "StringNode",
                          "value": "Variable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.4.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Lazy"
        },
        {
          "class": "AnnotationParametersNode"
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Variable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "AnnotationDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "StreamCapable"
        },
        {
          "class": "AnnotationParametersNode"
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "AnnotationTarget"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "targets"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "Parameter"
                        },
                        {
                          "class": "StringNode",
                          "value": "Variable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "String"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Boolean"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Number"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Range"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Namespace"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Uri"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "DateTime"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "LocalDateTime"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Date"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "LocalTime"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Time"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "TimeZone"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Period"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Binary"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Null"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Regex"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Nothing"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Any"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Array"
        },
        {
          "class": "TypeParametersListNode",
          "children": [
            {
              "class": "TypeParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "T"
                }
              ]
            }
          ]
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Object"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Type"
        },
        {
          "class": "TypeParametersListNode",
          "children": [
            {
              "class": "TypeParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "T"
                }
              ]
            }
          ]
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Key"
        },
        {
          "class": "NativeTypeNode"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Dictionary"
        },
        {
          "class": "TypeParametersListNode",
          "children": [
            {
              "class": "TypeParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "T"
                }
              ]
            }
          ]
        },
        {
          "class": "ObjectTypeNode",
          "children": [
            {
              "class": "KeyValueTypeNode",
              "children": [
                {
                  "class": "KeyTypeNode",
                  "children": [
                    {
                      "class": "NameTypeNode"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Comparable"
        },
        {
          "class": "UnionTypeNode",
          "children": [
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalDateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Date"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Time"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "TimeZone"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "SimpleType"
        },
        {
          "class": "UnionTypeNode",
          "children": [
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalDateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Date"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Time"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "TimeZone"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Period"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "StringCoerceable"
        },
        {
          "class": "UnionTypeNode",
          "children": [
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalDateTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Date"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalTime"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Time"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "TimeZone"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Period"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Key"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Binary"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Uri"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Type"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Any"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Regex"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Namespace"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Pair"
        },
        {
          "class": "TypeParametersListNode",
          "children": [
            {
              "class": "TypeParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LEFT"
                }
              ]
            },
            {
              "class": "TypeParameterNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "RIGHT"
                }
              ]
            }
          ]
        },
        {
          "class": "ObjectTypeNode",
          "children": [
            {
              "class": "KeyValueTypeNode",
              "children": [
                {
                  "class": "KeyTypeNode",
                  "children": [
                    {
                      "class": "NameTypeNode"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "LEFT"
                    }
                  ]
                }
              ]
            },
            {
              "class": "KeyValueTypeNode",
              "children": [
                {
                  "class": "KeyTypeNode",
                  "children": [
                    {
                      "class": "NameTypeNode"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "RIGHT"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.2.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "log"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "prefix"
                    },
                    {
                      "class": "StringNode",
                      "value": ""
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::log"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "T"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "read"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "stringToParse"
                    },
                    {
                      "class": "UnionTypeNode",
                      "children": [
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Binary"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "contentType"
                    },
                    {
                      "class": "StringNode",
                      "value": "application/dw"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "readerProperties"
                    },
                    {
                      "class": "ObjectNode"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::read"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Any"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "readUrl"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "url"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "contentType"
                    },
                    {
                      "class": "StringNode",
                      "value": "application/dw"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "readerProperties"
                    },
                    {
                      "class": "ObjectNode"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::readUrl"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Any"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "RuntimePrivilege"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "requires"
                    },
                    {
                      "class": "StringNode",
                      "value": "Resource"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "write"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Any"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "contentType"
                    },
                    {
                      "class": "StringNode",
                      "value": "application/dw"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "writerProperties"
                    },
                    {
                      "class": "ObjectNode"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::write"
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Binary"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "random"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters"
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::random"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "randomInt"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "upperBound"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "floor"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "BinaryOpNode",
                      "value": "MultiplicationOpId$",
                      "children": [
                        {
                          "class": "FunctionCallNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "random"
                                }
                              ]
                            },
                            {
                              "class": "FunctionCallParametersNode"
                            }
                          ]
                        },
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "upperBound"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "uuid"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters"
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::uuid"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "now"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters"
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::now"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "native"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "identifier"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "UndefinedExpressionNode"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Nothing"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Internal"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "permits"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "dw::"
                        },
                        {
                          "class": "StringNode",
                          "value": "bat::"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Iterator"
        },
        {
          "class": "TypeReferenceNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Array"
            },
            {
              "class": "SchemaNode",
              "children": [
                {
                  "class": "SchemaPropertyNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "iterator"
                    },
                    {
                      "class": "BooleanNode",
                      "value": "true"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "Enum"
        },
        {
          "class": "TypeReferenceNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "String"
            },
            {
              "class": "SchemaNode",
              "children": [
                {
                  "class": "SchemaPropertyNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "enumeration"
                    },
                    {
                      "class": "BooleanNode",
                      "value": "true"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "NaN"
        },
        {
          "class": "TypeReferenceNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Null"
            },
            {
              "class": "SchemaNode",
              "children": [
                {
                  "class": "SchemaPropertyNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "NaN"
                    },
                    {
                      "class": "BooleanNode",
                      "value": "true"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "TypeDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "CData"
        },
        {
          "class": "TypeReferenceNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "String"
            },
            {
              "class": "SchemaNode",
              "children": [
                {
                  "class": "SchemaPropertyNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "cdata"
                    },
                    {
                      "class": "BooleanNode",
                      "value": "true"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "NamespaceDirective",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "xsi"
        },
        {
          "class": "UriNode",
          "value": "http://www.w3.org/2001/XMLSchema-instance"
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "xsiType"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "name"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "namespace"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Namespace"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "DoBlockNode",
              "children": [
                {
                  "class": "HeaderNode",
                  "children": [
                    {
                      "class": "VarDirective",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "nsObject"
                        },
                        {
                          "class": "BinaryOpNode",
                          "value": "AsOpId$",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "namespace"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Object"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "PublicScopeNode"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "ObjectNode",
                  "children": [
                    {
                      "class": "KeyValuePairNode",
                      "children": [
                        {
                          "class": "KeyNode",
                          "children": [
                            {
                              "class": "StringNode",
                              "value": "type"
                            },
                            {
                              "class": "NamespaceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "xsi"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "BinaryOpNode",
                          "value": "AsOpId$",
                          "children": [
                            {
                              "class": "FunctionCallNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "++"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallParametersNode",
                                  "children": [
                                    {
                                      "class": "FunctionCallNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "++"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "FunctionCallParametersNode",
                                          "children": [
                                            {
                                              "class": "NullSafeNode",
                                              "children": [
                                                {
                                                  "class": "BinaryOpNode",
                                                  "value": "ValueSelectorOpId$",
                                                  "children": [
                                                    {
                                                      "class": "VariableReferenceNode",
                                                      "children": [
                                                        {
                                                          "class": "NameIdentifier",
                                                          "value": "nsObject"
                                                        }
                                                      ]
                                                    },
                                                    {
                                                      "class": "NameNode",
                                                      "children": [
                                                        {
                                                          "class": "StringNode",
                                                          "value": "prefix"
                                                        }
                                                      ]
                                                    }
                                                  ]
                                                }
                                              ]
                                            },
                                            {
                                              "class": "StringNode",
                                              "value": ":"
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "name"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "String"
                                },
                                {
                                  "class": "SchemaNode",
                                  "children": [
                                    {
                                      "class": "SchemaPropertyNode",
                                      "children": [
                                        {
                                          "class": "StringNode",
                                          "value": "nsPrefix"
                                        },
                                        {
                                          "class": "NullSafeNode",
                                          "children": [
                                            {
                                              "class": "BinaryOpNode",
                                              "value": "ValueSelectorOpId$",
                                              "children": [
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "nsObject"
                                                    }
                                                  ]
                                                },
                                                {
                                                  "class": "NameNode",
                                                  "children": [
                                                    {
                                                      "class": "StringNode",
                                                      "value": "prefix"
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "class": "SchemaPropertyNode",
                                      "children": [
                                        {
                                          "class": "StringNode",
                                          "value": "nsUri"
                                        },
                                        {
                                          "class": "NullSafeNode",
                                          "children": [
                                            {
                                              "class": "BinaryOpNode",
                                              "value": "ValueSelectorOpId$",
                                              "children": [
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "nsObject"
                                                    }
                                                  ]
                                                },
                                                {
                                                  "class": "NameNode",
                                                  "children": [
                                                    {
                                                      "class": "StringNode",
                                                      "value": "uri"
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.2.2"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "S"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "with"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayAppendArrayFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "UnionTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "S"
                        }
                      ]
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "S"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "with"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringAppendStringFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "with"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Q"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectAppendObjectFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "IntersectionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Q"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    },
                    {
                      "class": "ObjectTypeNode"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Q"
                    },
                    {
                      "class": "ObjectTypeNode"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalTime"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalDateAppendLocalTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalDateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalTime"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalTimeAppendLocalDateFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "LocalDateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Time"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalDateAppendTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Time"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::TimeAppendLocalDateFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalDateAppendTimeZoneFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::TimeZoneAppendLocalDateFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "dateTime"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalDateTime"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalDateTimeAppendTimeZoneFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "datetime"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalDateTime"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::TimeZoneAppendLocalDateTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "DateTime"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalTime"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LocalTimeAppendTimeZoneFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Time"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "++"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "timezone"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "TimeZone"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "time"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalTime"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::TimeZoneValueAppendLocalTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Time"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "append"
                        },
                        {
                          "class": "StringNode",
                          "value": "concat"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "mapObject"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Object"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::MapObjectObjectFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Object"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "mapObject"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "pluck"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::PluckObjectFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "pluck"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "zip"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "left"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "right"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "PatternMatcherNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "left"
                    }
                  ]
                },
                {
                  "class": "PatternExpressionsNode",
                  "children": [
                    {
                      "class": "DeconstructArrayPatternNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "lh"
                        },
                        {
                          "class": "NameIdentifier",
                          "value": "ltail"
                        },
                        {
                          "class": "PatternMatcherNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "right"
                                }
                              ]
                            },
                            {
                              "class": "PatternExpressionsNode",
                              "children": [
                                {
                                  "class": "DeconstructArrayPatternNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "rh"
                                    },
                                    {
                                      "class": "NameIdentifier",
                                      "value": "rtail"
                                    },
                                    {
                                      "class": "HeadTailArrayNode",
                                      "children": [
                                        {
                                          "class": "ArrayNode",
                                          "children": [
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "lh"
                                                }
                                              ]
                                            },
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "rh"
                                                }
                                              ]
                                            }
                                          ]
                                        },
                                        {
                                          "class": "FunctionCallNode",
                                          "children": [
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "zip"
                                                }
                                              ]
                                            },
                                            {
                                              "class": "FunctionCallParametersNode",
                                              "children": [
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "ltail"
                                                    }
                                                  ]
                                                },
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "rtail"
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "EmptyArrayPatternNode",
                                  "children": [
                                    {
                                      "class": "ArrayNode"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "EmptyArrayPatternNode",
                      "children": [
                        {
                          "class": "ArrayNode"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "UnionTypeNode",
                      "children": [
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "map"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayMapFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "foreach"
                        },
                        {
                          "class": "StringNode",
                          "value": "transform"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "map"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "foreach"
                        },
                        {
                          "class": "StringNode",
                          "value": "transform"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "flatMap"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Array"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "R"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "flatten"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "FunctionCallNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "map"
                            }
                          ]
                        },
                        {
                          "class": "FunctionCallParametersNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "items"
                                }
                              ]
                            },
                            {
                              "class": "FunctionNode",
                              "children": [
                                {
                                  "class": "FunctionParameters",
                                  "children": [
                                    {
                                      "class": "FunctionParameter",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "value"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionParameter",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "index"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "mapper"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionCallParametersNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "value"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "index"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "flatMap"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "mapper"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "filter"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Boolean"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayFilterFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "where"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "filter"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Boolean"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "where"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "filterObject"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Boolean"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectFilterFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "ObjectTypeNode",
              "children": [
                {
                  "class": "KeyValueTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "K"
                        }
                      ]
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "V"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "filterObject"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Boolean"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "entriesOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "obj"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "pluck"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "obj"
                        }
                      ]
                    },
                    {
                      "class": "FunctionNode",
                      "children": [
                        {
                          "class": "FunctionParameters",
                          "children": [
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "value"
                                }
                              ]
                            },
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "key"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "ObjectNode",
                          "children": [
                            {
                              "class": "KeyValuePairNode",
                              "children": [
                                {
                                  "class": "KeyNode",
                                  "children": [
                                    {
                                      "class": "StringNode",
                                      "value": "key"
                                    }
                                  ]
                                },
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "key"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "KeyValuePairNode",
                              "children": [
                                {
                                  "class": "KeyNode",
                                  "children": [
                                    {
                                      "class": "StringNode",
                                      "value": "value"
                                    }
                                  ]
                                },
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "value"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "KeyValuePairNode",
                              "children": [
                                {
                                  "class": "KeyNode",
                                  "children": [
                                    {
                                      "class": "StringNode",
                                      "value": "attributes"
                                    }
                                  ]
                                },
                                {
                                  "class": "DefaultNode",
                                  "children": [
                                    {
                                      "class": "NullSafeNode",
                                      "children": [
                                        {
                                          "class": "UnaryOpNode",
                                          "value": "AllAttributesSelectorOpId$",
                                          "children": [
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "key"
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "class": "ObjectNode"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "ObjectTypeNode",
                  "children": [
                    {
                      "class": "KeyValueTypeNode",
                      "children": [
                        {
                          "class": "KeyTypeNode",
                          "children": [
                            {
                              "class": "NameTypeNode"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Key"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "KeyValueTypeNode",
                      "children": [
                        {
                          "class": "KeyTypeNode",
                          "children": [
                            {
                              "class": "NameTypeNode"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "KeyValueTypeNode",
                      "children": [
                        {
                          "class": "KeyTypeNode",
                          "children": [
                            {
                              "class": "NameTypeNode"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Object"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "namesOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "obj"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "pluck"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "obj"
                        }
                      ]
                    },
                    {
                      "class": "BinaryOpNode",
                      "value": "AsOpId$",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "$$"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "keysOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "obj"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "pluck"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "obj"
                        }
                      ]
                    },
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "$$"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "DynamicReturnTypeNode"
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "valuesOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "obj"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "pluck"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "obj"
                        }
                      ]
                    },
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "$"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Since"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "version"
                    },
                    {
                      "class": "StringNode",
                      "value": "2.3.0"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "replace"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ReplaceStringRegexFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionTypeNode",
              "children": [
                {
                  "class": "FunctionParameterTypeNode",
                  "children": [
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Array"
                                },
                                {
                                  "class": "TypeReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "String"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "replace"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ReplaceStringStringFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionTypeNode",
              "children": [
                {
                  "class": "FunctionParameterTypeNode",
                  "children": [
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Array"
                                },
                                {
                                  "class": "TypeReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "String"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "with"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "toBeReplaced"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "FunctionTypeNode",
                              "children": [
                                {
                                  "class": "FunctionParameterTypeNode",
                                  "children": [
                                    {
                                      "class": "TypeReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "V"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionParameterTypeNode",
                                  "children": [
                                    {
                                      "class": "TypeReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "U"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "TypeReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "R"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "X"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "replacer"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "U"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "toBeReplaced"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "replacer"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "X"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "U"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "X"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "reduce"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "callback"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "accumulator"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayReduceFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Null"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "reduce"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "callback"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "accumulator"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "A"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "A"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayReduceFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "A"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "A"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "groupBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayGroupByFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "ObjectTypeNode",
              "children": [
                {
                  "class": "KeyValueTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "R"
                        }
                      ]
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "groupBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectGroupByFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "ObjectTypeNode",
              "children": [
                {
                  "class": "KeyValueTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "R"
                        }
                      ]
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "groupBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "--"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "S"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "toRemove"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayRemoveFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "S"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "S"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "removeAll"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "--"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "toRemove"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectRemoveFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "ObjectTypeNode",
              "children": [
                {
                  "class": "KeyValueTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "K"
                        }
                      ]
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "V"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "removeAll"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "--"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "keys"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "reduce"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "keys"
                        }
                      ]
                    },
                    {
                      "class": "FunctionNode",
                      "children": [
                        {
                          "class": "FunctionParameters",
                          "children": [
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "key"
                                }
                              ]
                            },
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "obj"
                                },
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "source"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "BinaryOpNode",
                          "value": "SubtractionOpId$",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "obj"
                                }
                              ]
                            },
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "key"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "removeAll"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "--"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "source"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "keys"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Key"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "reduce"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "keys"
                        }
                      ]
                    },
                    {
                      "class": "FunctionNode",
                      "children": [
                        {
                          "class": "FunctionParameters",
                          "children": [
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "key"
                                }
                              ]
                            },
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "obj"
                                },
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "source"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "BinaryOpNode",
                          "value": "SubtractionOpId$",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "obj"
                                }
                              ]
                            },
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "key"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "AnnotationNode",
          "children": [
            {
              "class": "NameIdentifier",
              "value": "Labels"
            },
            {
              "class": "AnnotationArgumentsNode",
              "children": [
                {
                  "class": "AnnotationArgumentNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "labels"
                    },
                    {
                      "class": "ArrayNode",
                      "children": [
                        {
                          "class": "StringNode",
                          "value": "removeAll"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "find"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "elements"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        },
                        {
                          "class": "AnnotationArgumentsNode"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "elementToFind"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Any"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayFindFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Number"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "find"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        },
                        {
                          "class": "AnnotationArgumentsNode"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringFindRegexFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "find"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        },
                        {
                          "class": "AnnotationArgumentsNode"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "textToFind"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringFindStringFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Number"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "distinctBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayDistinctFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "distinctBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "distinctBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectDistinctFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Object"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "to"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "from"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "to"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ToRangeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Range"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "contains"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "element"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Any"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayContainsFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "contains"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "toSearch"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringStringContainsFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "contains"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringRegexContainsFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "orderBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "O"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "value"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "key"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectOrderByFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "O"
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "K"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "V"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "O"
                    },
                    {
                      "class": "ObjectTypeNode",
                      "children": [
                        {
                          "class": "KeyValueTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "K"
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "V"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "orderBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Number"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "R"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayOrderByFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "R"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "orderBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "index"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Nothing"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Null"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "avg"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "values"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Number"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "BinaryOpNode",
              "value": "DivisionOpId$",
              "children": [
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "sum"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "values"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "sizeOf"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "values"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "max"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "values"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "maxBy"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "values"
                        }
                      ]
                    },
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "$"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Null"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Comparable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "min"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "values"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "minBy"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "values"
                        }
                      ]
                    },
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "$"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Null"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Comparable"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sum"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "values"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Number"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "DefaultNode",
              "children": [
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "reduce"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "values"
                            }
                          ]
                        },
                        {
                          "class": "FunctionNode",
                          "children": [
                            {
                              "class": "FunctionParameters",
                              "children": [
                                {
                                  "class": "FunctionParameter",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "value"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionParameter",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "acc"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "BinaryOpNode",
                              "value": "AdditionOpId$",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "value"
                                    }
                                  ]
                                },
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "acc"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "NumberNode",
                  "value": "0"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sizeOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArraySizeOfFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sizeOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "object"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ObjectSizeOfFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sizeOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "binary"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Binary"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::BinarySizeOfFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sizeOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringSizeOfFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "flatten"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "UnionTypeNode",
                          "children": [
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Array"
                                },
                                {
                                  "class": "TypeReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "T"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Q"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ArrayFlattenFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "UnionTypeNode",
                  "children": [
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Q"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Q"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "flatten"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "unzip"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "items"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Array"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "DoBlockNode",
              "children": [
                {
                  "class": "HeaderNode",
                  "children": [
                    {
                      "class": "VarDirective",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "minSize"
                        },
                        {
                          "class": "DefaultNode",
                          "children": [
                            {
                              "class": "FunctionCallNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "min"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallParametersNode",
                                  "children": [
                                    {
                                      "class": "FunctionCallNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "map"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "FunctionCallParametersNode",
                                          "children": [
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "items"
                                                }
                                              ]
                                            },
                                            {
                                              "class": "FunctionCallNode",
                                              "children": [
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "sizeOf"
                                                    }
                                                  ]
                                                },
                                                {
                                                  "class": "FunctionCallParametersNode",
                                                  "children": [
                                                    {
                                                      "class": "VariableReferenceNode",
                                                      "children": [
                                                        {
                                                          "class": "NameIdentifier",
                                                          "value": "$"
                                                        }
                                                      ]
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "NumberNode",
                              "value": "0"
                            }
                          ]
                        },
                        {
                          "class": "PublicScopeNode"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "map"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "BinaryOpNode",
                          "value": "AsOpId$",
                          "children": [
                            {
                              "class": "FunctionCallNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "to"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallParametersNode",
                                  "children": [
                                    {
                                      "class": "NumberNode",
                                      "value": "0"
                                    },
                                    {
                                      "class": "BinaryOpNode",
                                      "value": "SubtractionOpId$",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "minSize"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "NumberNode",
                                          "value": "1"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "Array"
                                },
                                {
                                  "class": "TypeReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "Number"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionNode",
                          "children": [
                            {
                              "class": "FunctionParameters",
                              "children": [
                                {
                                  "class": "FunctionParameter",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "i"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "FunctionCallNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "map"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallParametersNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "items"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionNode",
                                      "children": [
                                        {
                                          "class": "FunctionParameters",
                                          "children": [
                                            {
                                              "class": "FunctionParameter",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "item"
                                                }
                                              ]
                                            }
                                          ]
                                        },
                                        {
                                          "class": "NullSafeNode",
                                          "children": [
                                            {
                                              "class": "BinaryOpNode",
                                              "value": "DynamicSelectorOpId$",
                                              "children": [
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "item"
                                                    }
                                                  ]
                                                },
                                                {
                                                  "class": "VariableReferenceNode",
                                                  "children": [
                                                    {
                                                      "class": "NameIdentifier",
                                                      "value": "i"
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "endsWith"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "suffix"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringEndsWithFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "joinBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "elements"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "StringCoerceable"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "separator"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "IfNode",
              "children": [
                {
                  "class": "StringNode",
                  "value": ""
                },
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "isEmpty"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "elements"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "reduce"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "FunctionCallNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "map"
                                }
                              ]
                            },
                            {
                              "class": "FunctionCallParametersNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "elements"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionNode",
                                  "children": [
                                    {
                                      "class": "FunctionParameters",
                                      "children": [
                                        {
                                          "class": "FunctionParameter",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "item"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "FunctionParameter",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "index"
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "class": "BinaryOpNode",
                                      "value": "AsOpId$",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "item"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "TypeReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "String"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "FunctionNode",
                          "children": [
                            {
                              "class": "FunctionParameters",
                              "children": [
                                {
                                  "class": "FunctionParameter",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "item"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionParameter",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "accumulator"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "FunctionCallNode",
                              "children": [
                                {
                                  "class": "VariableReferenceNode",
                                  "children": [
                                    {
                                      "class": "NameIdentifier",
                                      "value": "++"
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallParametersNode",
                                  "children": [
                                    {
                                      "class": "FunctionCallNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "++"
                                            }
                                          ]
                                        },
                                        {
                                          "class": "FunctionCallParametersNode",
                                          "children": [
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "accumulator"
                                                }
                                              ]
                                            },
                                            {
                                              "class": "VariableReferenceNode",
                                              "children": [
                                                {
                                                  "class": "NameIdentifier",
                                                  "value": "separator"
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "item"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "scan"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringScanFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "splitBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "regex"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringSplitStringFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "splitBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "separator"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringSplitRegexFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "startsWith"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "prefix"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringStartsWithFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "matches"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringMatchesFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "match"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "matcher"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Regex"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringRegexMatchFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Array"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "String"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "lower"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringLowerFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "lower"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "trim"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringTrimFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "trim"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "upper"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::StringUpperFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "String"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "upper"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "NullNode",
              "value": "null"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Null"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "pow"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "base"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "power"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::PowNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "mod"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "dividend"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "divisor"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::ModuleNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "sqrt"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::SqrtNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "abs"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::AbsNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "ceil"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::CeilNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "floor"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::FloorNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "typeOf"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "T"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::TypeOfAnyFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Type"
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "round"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::RoundNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isEmpty"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "elements"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Any"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::EmptyArrayFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isEmpty"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "String"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::EmptyStringFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isEmpty"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Null"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "BooleanNode",
              "value": "true"
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isEmpty"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "value"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Object"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::EmptyObjectFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isLeapYear"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "dateTime"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "DateTime"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LeapDateTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isLeapYear"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "date"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LeapLocalDateFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isLeapYear"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "datetime"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "LocalDateTime"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::LeapLocalDateTimeFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isDecimal"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::DecimalNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isInteger"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::IntegerNumberFunctionValue"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isBlank"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "text"
                    },
                    {
                      "class": "UnionTypeNode",
                      "children": [
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "String"
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Null"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "isEmpty"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "FunctionCallNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "trim"
                            }
                          ]
                        },
                        {
                          "class": "FunctionCallParametersNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "text"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isOdd"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "BinaryOpNode",
              "value": "NotEqOpId$",
              "children": [
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "mod"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "number"
                            }
                          ]
                        },
                        {
                          "class": "NumberNode",
                          "value": "2"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "NumberNode",
                  "value": "0"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "isEven"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "number"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Number"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "BinaryOpNode",
              "value": "EqOpId$",
              "children": [
                {
                  "class": "FunctionCallNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "mod"
                        }
                      ]
                    },
                    {
                      "class": "FunctionCallParametersNode",
                      "children": [
                        {
                          "class": "VariableReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "number"
                            }
                          ]
                        },
                        {
                          "class": "NumberNode",
                          "value": "2"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "NumberNode",
                  "value": "0"
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Boolean"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "minBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Comparable"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "reduce"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "array"
                        }
                      ]
                    },
                    {
                      "class": "FunctionNode",
                      "children": [
                        {
                          "class": "FunctionParameters",
                          "children": [
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "val"
                                }
                              ]
                            },
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "prev"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "IfNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "val"
                                }
                              ]
                            },
                            {
                              "class": "BinaryOpNode",
                              "value": "LessThanOpId$",
                              "children": [
                                {
                                  "class": "FunctionCallNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "criteria"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionCallParametersNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "val"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "criteria"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionCallParametersNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "prev"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "prev"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Null"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "maxBy"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "array"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Array"
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "T"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "class": "AnnotationNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "StreamCapable"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "criteria"
                    },
                    {
                      "class": "FunctionTypeNode",
                      "children": [
                        {
                          "class": "FunctionParameterTypeNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "item"
                            },
                            {
                              "class": "TypeReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "T"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "TypeReferenceNode",
                          "children": [
                            {
                              "class": "NameIdentifier",
                              "value": "Comparable"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "reduce"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "VariableReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "array"
                        }
                      ]
                    },
                    {
                      "class": "FunctionNode",
                      "children": [
                        {
                          "class": "FunctionParameters",
                          "children": [
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "val"
                                }
                              ]
                            },
                            {
                              "class": "FunctionParameter",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "prev"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "class": "IfNode",
                          "children": [
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "val"
                                }
                              ]
                            },
                            {
                              "class": "BinaryOpNode",
                              "value": "GreaterThanOpId$",
                              "children": [
                                {
                                  "class": "FunctionCallNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "criteria"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionCallParametersNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "val"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "class": "FunctionCallNode",
                                  "children": [
                                    {
                                      "class": "VariableReferenceNode",
                                      "children": [
                                        {
                                          "class": "NameIdentifier",
                                          "value": "criteria"
                                        }
                                      ]
                                    },
                                    {
                                      "class": "FunctionCallParametersNode",
                                      "children": [
                                        {
                                          "class": "VariableReferenceNode",
                                          "children": [
                                            {
                                              "class": "NameIdentifier",
                                              "value": "prev"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "class": "VariableReferenceNode",
                              "children": [
                                {
                                  "class": "NameIdentifier",
                                  "value": "prev"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "UnionTypeNode",
              "children": [
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                },
                {
                  "class": "TypeReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "Null"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeParametersListNode",
              "children": [
                {
                  "class": "TypeParameterNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "T"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    },
    {
      "class": "FunctionDirectiveNode",
      "children": [
        {
          "class": "NameIdentifier",
          "value": "daysBetween"
        },
        {
          "class": "FunctionNode",
          "children": [
            {
              "class": "FunctionParameters",
              "children": [
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "from"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                },
                {
                  "class": "FunctionParameter",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "to"
                    },
                    {
                      "class": "TypeReferenceNode",
                      "children": [
                        {
                          "class": "NameIdentifier",
                          "value": "Date"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "class": "FunctionCallNode",
              "children": [
                {
                  "class": "VariableReferenceNode",
                  "children": [
                    {
                      "class": "NameIdentifier",
                      "value": "native"
                    }
                  ]
                },
                {
                  "class": "FunctionCallParametersNode",
                  "children": [
                    {
                      "class": "StringNode",
                      "value": "system::daysBetween"
                    }
                  ]
                }
              ]
            },
            {
              "class": "TypeReferenceNode",
              "children": [
                {
                  "class": "NameIdentifier",
                  "value": "Number"
                }
              ]
            }
          ]
        },
        {
          "class": "PublicScopeNode"
        }
      ]
    }
  ]
}