Module(body=[FunctionDef(name='genmaker', args=arguments(args=[Name(id='a', ctx=Param()), Name(id='b', ctx=Param())], vararg=None, kwarg=None, defaults=[]), body=[Assign(targets=[Name(id='z', ctx=Store())], value=BinOp(left=Name(id='a', ctx=Load()), op=Mult(), right=Name(id='b', ctx=Load()))), FunctionDef(name='gen', args=arguments(args=[Name(id='y', ctx=Param())], vararg=None, kwarg=None, defaults=[]), body=[For(target=Name(id='i', ctx=Store()), iter=Call(func=Name(id='range', ctx=Load()), args=[Num(n=4)], keywords=[], starargs=None, kwargs=None), body=[Expr(value=Yield(value=Tuple(elts=[Name(id='i', ctx=Load()), Name(id='a', ctx=Load()), Name(id='b', ctx=Load()), Name(id='y', ctx=Load()), Name(id='z', ctx=Load())], ctx=Load())))], orelse=[])], decorator_list=[]), Return(value=Call(func=Name(id='gen', ctx=Load()), args=[BinOp(left=BinOp(left=BinOp(left=Name(id='a', ctx=Load()), op=Mult(), right=Name(id='a', ctx=Load())), op=Mult(), right=Name(id='b', ctx=Load())), op=Mult(), right=Name(id='b', ctx=Load()))], keywords=[], starargs=None, kwargs=None))], decorator_list=[]), Assign(targets=[Name(id='g1', ctx=Store())], value=Call(func=Name(id='genmaker', ctx=Load()), args=[Num(n=3), Num(n=4)], keywords=[], starargs=None, kwargs=None)), Assign(targets=[Name(id='g2', ctx=Store())], value=Call(func=Name(id='genmaker', ctx=Load()), args=[Num(n=4), Num(n=5)], keywords=[], starargs=None, kwargs=None)), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g1', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g2', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g1', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g2', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g1', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g2', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g1', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Call(func=Attribute(value=Name(id='g2', ctx=Load()), attr='next', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)], nl=True)])