Module(body=[FunctionDef(name='f',
                         args=arguments(args=[],
                                        vararg=None,
                                        kwarg=None,
                                        defaults=[]),
                         body=[Print(dest=None,
                                     values=[Str(s='in f')],
                                     nl=True),
                               Return(value=Num(n=10))],
                         decorator_list=[]),
             FunctionDef(name='g',
                         args=arguments(args=[],
                                        vararg=None,
                                        kwarg=None,
                                        defaults=[]),
                         body=[Print(dest=None,
                                     values=[Str(s='in g')],
                                     nl=True),
                               Return(value=Num(n=20))],
                         decorator_list=[]),
             Assign(targets=[Name(id='retval',
                                  ctx=Store())],
                    value=Name(id='True',
                               ctx=Load())),
             FunctionDef(name='h',
                         args=arguments(args=[],
                                        vararg=None,
                                        kwarg=None,
                                        defaults=[]),
                         body=[Global(names=['retval']),
                               Assign(targets=[Name(id='retval',
                                                    ctx=Store())],
                                      value=UnaryOp(op=Not(),
                                                    operand=Name(id='retval',
                                                                 ctx=Load()))),
                               Return(value=Name(id='retval',
                                                 ctx=Load()))],
                         decorator_list=[]),
             For(target=Name(id='i',
                             ctx=Store()),
                 iter=Call(func=Name(id='range',
                                     ctx=Load()),
                           args=[Num(n=3)],
                           keywords=[],
                           starargs=None,
                           kwargs=None),
                 body=[Print(dest=None,
                             values=[IfExp(test=Call(func=Name(id='h',
                                                               ctx=Load()),
                                                     args=[],
                                                     keywords=[],
                                                     starargs=None,
                                                     kwargs=None),
                                           body=Call(func=Name(id='f',
                                                               ctx=Load()),
                                                     args=[],
                                                     keywords=[],
                                                     starargs=None,
                                                     kwargs=None),
                                           orelse=Call(func=Name(id='g',
                                                                 ctx=Load()),
                                                       args=[],
                                                       keywords=[],
                                                       starargs=None,
                                                       kwargs=None))],
                             nl=True)],
                 orelse=[])])
