1GLB0 = (1, 2)
2def f0(arg=GLB0):
3    """
4    >>> f0()
5    (1, 2)
6    """
7    return arg
8def g0(arg=(1, 2)):
9    """
10    >>> g0()
11    (1, 2)
12    """
13    return arg
14
15
16GLB1 = [1, 2]
17def f1(arg=GLB1):
18    """
19    >>> f1()
20    [1, 2]
21    """
22    return arg
23def g1(arg=[1, 2]):
24    """
25    >>> g1()
26    [1, 2]
27    """
28    return arg
29
30
31cdef GLB2 = {1: 2}
32def f2(arg=GLB2):
33    """
34    >>> f2()
35    {1: 2}
36    """
37    return arg
38def g2(arg={1: 2}):
39    """
40    >>> g2()
41    {1: 2}
42    """
43    return arg
44
45
46class Foo(object):
47    pass
48cdef GLB3 = Foo()
49def f3(arg=GLB3):
50    """
51    >>> f3() #doctest: +ELLIPSIS
52    <argdefault.Foo object at ...>
53    """
54    return arg
55def g3(arg=Foo()):
56    """
57    >>> g3() #doctest: +ELLIPSIS
58    <argdefault.Foo object at ...>
59    """
60    return arg
61
62
63cdef class Bar:
64    pass
65cdef Bar GLB4 = Bar()
66def f4(arg=GLB4):
67    """
68    >>> f4() #doctest: +ELLIPSIS
69    <argdefault.Bar object at ...>
70    """
71    return arg
72def g4(arg=Bar()):
73    """
74    >>> g4() #doctest: +ELLIPSIS
75    <argdefault.Bar object at ...>
76    """
77    return arg
78
79
80cdef class Bla:
81    pass
82cdef Bla GLB5 = Bla()
83def f5(Bla arg=GLB5):
84    """
85    >>> f5() #doctest: +ELLIPSIS
86    <argdefault.Bla object at ...>
87    """
88    return arg
89def g5(Bla arg=Bla()):
90    """
91    >>> g5() #doctest: +ELLIPSIS
92    <argdefault.Bla object at ...>
93    """
94    return arg
95
96
97cdef int GLB6 = 7
98def f6(int arg=GLB6):
99    """
100    >>> f6()
101    7
102    """
103    return arg
104def g6(int arg=7):
105    """
106    >>> g6()
107    7
108    """
109    return arg
110