[ Function( Function { start: ( 3, 1, ), end: ( 7, 1, ), name: Identifier { start: ( 3, 10, ), name: "bar", end: ( 3, 13, ), }, attributes: [], parameters: FunctionParameterList { start: ( 3, 13, ), end: ( 5, 2, ), members: [ FunctionParameter { start: ( 4, 5, ), end: ( 5, 1, ), name: Variable { start: ( 4, 13, ), name: "i", end: ( 5, 1, ), }, attributes: [], type: Some( Union( [ Identifier( Identifier { start: ( 4, 5, ), name: "A", end: ( 4, 6, ), }, ), Intersection( [ Identifier( Identifier { start: ( 4, 8, ), name: "B", end: ( 4, 9, ), }, ), Identifier( Identifier { start: ( 4, 10, ), name: "C", end: ( 4, 11, ), }, ), ], ), ], ), ), variadic: false, default: None, by_ref: false, }, ], }, return_type: Some( Union( [ Intersection( [ Identifier( Identifier { start: ( 5, 5, ), name: "B", end: ( 5, 6, ), }, ), Identifier( Identifier { start: ( 5, 7, ), name: "C", end: ( 5, 8, ), }, ), ], ), Identifier( Identifier { start: ( 5, 10, ), name: "A", end: ( 5, 12, ), }, ), ], ), ), by_ref: false, body: [ Return { value: Some( Variable( Variable { start: ( 6, 12, ), name: "i", end: ( 6, 14, ), }, ), ), }, ], }, ), ]