Function(
 Function {
  head: Destructured(
   FunctionHeadDestructured {
    ellipsis: false,
    identifier: None,
    arguments: [
     FunctionHeadDestructuredArgument {
      identifier: "file",
      default: None,
     },
    ],
   },
  ),
  body: FunctionApplication(
   FunctionApplication {
    function: PropertyAccess(
     PropertyAccess {
      expression: Identifier(
       Identifier {
        id: "builtins",
        span: Span {
         start: Position {
          line: 3,
          column: 1,
         },
         end: Position {
          line: 3,
          column: 9,
         },
        },
       },
      ),
      attribute_path: [
       Raw(
        PartRaw {
         content: "attrValues",
         span: Span {
          start: Position {
           line: 3,
           column: 10,
          },
          end: Position {
           line: 3,
           column: 20,
          },
         },
        },
       ),
      ],
      default: None,
     },
    ),
    arguments: [
     FunctionApplication(
      FunctionApplication {
       function: PropertyAccess(
        PropertyAccess {
         expression: Identifier(
          Identifier {
           id: "builtins",
           span: Span {
            start: Position {
             line: 4,
             column: 4,
            },
            end: Position {
             line: 4,
             column: 12,
            },
           },
          },
         ),
         attribute_path: [
          Raw(
           PartRaw {
            content: "mapAttrs",
            span: Span {
             start: Position {
              line: 4,
              column: 13,
             },
             end: Position {
              line: 4,
              column: 21,
             },
            },
           },
          ),
         ],
         default: None,
        },
       ),
       arguments: [
        Function(
         Function {
          head: Simple(
           FunctionHeadSimple {
            identifier: "name",
           },
          ),
          body: Function(
           Function {
            head: Simple(
             FunctionHeadSimple {
              identifier: "def",
             },
            ),
            body: BinaryOperation(
             BinaryOperation {
              left: Identifier(
               Identifier {
                id: "def",
                span: Span {
                 start: Position {
                  line: 5,
                  column: 17,
                 },
                 end: Position {
                  line: 5,
                  column: 20,
                 },
                },
               },
              ),
              operator: Update,
              right: Map(
               Map {
                recursive: false,
                bindings: [
                 Inherit(
                  BindingInherit {
                   from: None,
                   attributes: [
                    Raw(
                     PartRaw {
                      content: "name",
                      span: Span {
                       start: Position {
                        line: 5,
                        column: 34,
                       },
                       end: Position {
                        line: 5,
                        column: 38,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 5,
                     column: 25,
                    },
                    end: Position {
                     line: 5,
                     column: 39,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 5,
                  column: 24,
                 },
                 end: Position {
                  line: 5,
                  column: 41,
                 },
                },
               },
              ),
             },
            ),
            span: Span {
             start: Position {
              line: 5,
              column: 12,
             },
             end: Position {
              line: 5,
              column: 41,
             },
            },
           },
          ),
          span: Span {
           start: Position {
            line: 5,
            column: 6,
           },
           end: Position {
            line: 5,
            column: 41,
           },
          },
         },
        ),
        FunctionApplication(
         FunctionApplication {
          function: PropertyAccess(
           PropertyAccess {
            expression: Identifier(
             Identifier {
              id: "builtins",
              span: Span {
               start: Position {
                line: 6,
                column: 6,
               },
               end: Position {
                line: 6,
                column: 14,
               },
              },
             },
            ),
            attribute_path: [
             Raw(
              PartRaw {
               content: "fromJSON",
               span: Span {
                start: Position {
                 line: 6,
                 column: 15,
                },
                end: Position {
                 line: 6,
                 column: 23,
                },
               },
              },
             ),
            ],
            default: None,
           },
          ),
          arguments: [
           FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 6,
                   column: 25,
                  },
                  end: Position {
                   line: 6,
                   column: 33,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "readFile",
                  span: Span {
                   start: Position {
                    line: 6,
                    column: 34,
                   },
                   end: Position {
                    line: 6,
                    column: 42,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "file",
                span: Span {
                 start: Position {
                  line: 6,
                  column: 43,
                 },
                 end: Position {
                  line: 6,
                  column: 47,
                 },
                },
               },
              ),
             ],
            },
           ),
          ],
         },
        ),
       ],
      },
     ),
    ],
   },
  ),
  span: Span {
   start: Position {
    line: 1,
    column: 1,
   },
   end: Position {
    line: 6,
    column: 50,
   },
  },
 },
)