---
Function {
 argument: None,
 arguments: FunctionArguments {
  arguments: [
   FunctionArgument {
    identifier: "lib",
    default: None,
   },
  ],
  ellipsis: false,
 },
 definition: Map {
  bindings: [
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "splitVersion",
       position: (12, 3),
      },
     ],
    },
    PropertyAccess {
     expression: Variable {
      identifier: "builtins",
      position: (12, 18),
     },
     attribute_path: AttributePath {
      attributes: [
       Raw {
        content: "splitVersion",
        position: (12, 27),
       },
      ],
     },
     default: Some(
      FunctionApplication {
       function: PropertyAccess {
        expression: Variable {
         identifier: "lib",
         position: (12, 44),
        },
        attribute_path: AttributePath {
         attributes: [
          Raw {
           content: "splitString",
           position: (12, 48),
          },
         ],
        },
        default: None,
       },
       arguments: [
        String {
         parts: [
          Raw {
           content: ".",
           position: (12, 61),
          },
         ],
        },
       ],
      },
     ),
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "major",
       position: (20, 3),
      },
     ],
    },
    Function {
     argument: Some(
      "v",
     ),
     arguments: FunctionArguments {
      arguments: [],
      ellipsis: false,
     },
     definition: FunctionApplication {
      function: PropertyAccess {
       expression: Variable {
        identifier: "builtins",
        position: (20, 14),
       },
       attribute_path: AttributePath {
        attributes: [
         Raw {
          content: "elemAt",
          position: (20, 23),
         },
        ],
       },
       default: None,
      },
      arguments: [
       FunctionApplication {
        function: Variable {
         identifier: "splitVersion",
         position: (20, 31),
        },
        arguments: [
         Variable {
          identifier: "v",
          position: (20, 44),
         },
        ],
       },
       Int {
        value: 0,
        position: (20, 47),
       },
      ],
     },
     position: (20, 11),
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "minor",
       position: (28, 3),
      },
     ],
    },
    Function {
     argument: Some(
      "v",
     ),
     arguments: FunctionArguments {
      arguments: [],
      ellipsis: false,
     },
     definition: FunctionApplication {
      function: PropertyAccess {
       expression: Variable {
        identifier: "builtins",
        position: (28, 14),
       },
       attribute_path: AttributePath {
        attributes: [
         Raw {
          content: "elemAt",
          position: (28, 23),
         },
        ],
       },
       default: None,
      },
      arguments: [
       FunctionApplication {
        function: Variable {
         identifier: "splitVersion",
         position: (28, 31),
        },
        arguments: [
         Variable {
          identifier: "v",
          position: (28, 44),
         },
        ],
       },
       Int {
        value: 1,
        position: (28, 47),
       },
      ],
     },
     position: (28, 11),
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "patch",
       position: (36, 3),
      },
     ],
    },
    Function {
     argument: Some(
      "v",
     ),
     arguments: FunctionArguments {
      arguments: [],
      ellipsis: false,
     },
     definition: FunctionApplication {
      function: PropertyAccess {
       expression: Variable {
        identifier: "builtins",
        position: (36, 14),
       },
       attribute_path: AttributePath {
        attributes: [
         Raw {
          content: "elemAt",
          position: (36, 23),
         },
        ],
       },
       default: None,
      },
      arguments: [
       FunctionApplication {
        function: Variable {
         identifier: "splitVersion",
         position: (36, 31),
        },
        arguments: [
         Variable {
          identifier: "v",
          position: (36, 44),
         },
        ],
       },
       Int {
        value: 2,
        position: (36, 47),
       },
      ],
     },
     position: (36, 11),
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "majorMinor",
       position: (45, 3),
      },
     ],
    },
    Function {
     argument: Some(
      "v",
     ),
     arguments: FunctionArguments {
      arguments: [],
      ellipsis: false,
     },
     definition: FunctionApplication {
      function: PropertyAccess {
       expression: Variable {
        identifier: "builtins",
        position: (46, 5),
       },
       attribute_path: AttributePath {
        attributes: [
         Raw {
          content: "concatStringsSep",
          position: (46, 14),
         },
        ],
       },
       default: None,
      },
      arguments: [
       String {
        parts: [
         Raw {
          content: ".",
          position: (46, 32),
         },
        ],
       },
       FunctionApplication {
        function: PropertyAccess {
         expression: Variable {
          identifier: "lib",
          position: (47, 6),
         },
         attribute_path: AttributePath {
          attributes: [
           Raw {
            content: "take",
            position: (47, 10),
           },
          ],
         },
         default: None,
        },
        arguments: [
         Int {
          value: 2,
          position: (47, 15),
         },
         FunctionApplication {
          function: Variable {
           identifier: "splitVersion",
           position: (47, 18),
          },
          arguments: [
           Variable {
            identifier: "v",
            position: (47, 31),
           },
          ],
         },
        ],
       },
      ],
     },
     position: (45, 16),
    },
   ),
  ],
  recursive: true,
  position: (4, 1),
 },
 position: (2, 1),
}