(TranslationUnit
    (SymbolTable
        1
        {
            template_struct_01:
                (Program
                    (SymbolTable
                        15
                        {
                            r:
                                (ExternalSymbol
                                    15
                                    r
                                    2 r
                                    template_struct_01_m
                                    []
                                    r
                                    Public
                                ),
                            struct_t:
                                (ExternalSymbol
                                    15
                                    struct_t
                                    2 struct_t
                                    template_struct_01_m
                                    []
                                    struct_t
                                    Public
                                ),
                            test_template:
                                (ExternalSymbol
                                    15
                                    test_template
                                    2 test_template
                                    template_struct_01_m
                                    []
                                    test_template
                                    Public
                                )
                        })
                    template_struct_01
                    [template_struct_01_m]
                    [(SubroutineCall
                        15 test_template
                        ()
                        []
                        ()
                    )]
                ),
            template_struct_01_m:
                (Module
                    (SymbolTable
                        2
                        {
                            r:
                                (Requirement
                                    (SymbolTable
                                        3
                                        {
                                            t:
                                                (Variable
                                                    3
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    r
                                    [t]
                                    []
                                ),
                            struct_t:
                                (Template
                                    (SymbolTable
                                        4
                                        {
                                            get_fst:
                                                (Function
                                                    (SymbolTable
                                                        6
                                                        {
                                                            1_tuple_fst:
                                                                (ExternalSymbol
                                                                    6
                                                                    1_tuple_fst
                                                                    5 fst
                                                                    tuple
                                                                    []
                                                                    fst
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    6
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        4 tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    6
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_fst
                                                    (FunctionType
                                                        [(StructType
                                                            4 tuple
                                                        )]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 6 p)]
                                                    [(Assignment
                                                        (Var 6 r)
                                                        (StructInstanceMember
                                                            (Var 6 p)
                                                            6 1_tuple_fst
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 6 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            get_snd:
                                                (Function
                                                    (SymbolTable
                                                        7
                                                        {
                                                            1_tuple_snd:
                                                                (ExternalSymbol
                                                                    7
                                                                    1_tuple_snd
                                                                    5 snd
                                                                    tuple
                                                                    []
                                                                    snd
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    7
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        4 tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    7
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_snd
                                                    (FunctionType
                                                        [(StructType
                                                            4 tuple
                                                        )]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 7 p)]
                                                    [(Assignment
                                                        (Var 7 r)
                                                        (StructInstanceMember
                                                            (Var 7 p)
                                                            7 1_tuple_snd
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 7 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    4
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            tuple:
                                                (Struct
                                                    (SymbolTable
                                                        5
                                                        {
                                                            fst:
                                                                (Variable
                                                                    5
                                                                    fst
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            snd:
                                                                (Variable
                                                                    5
                                                                    snd
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    tuple
                                                    []
                                                    [fst
                                                    snd]
                                                    Source
                                                    Private
                                                    .false.
                                                    .false.
                                                    []
                                                    ()
                                                    ()
                                                )
                                        })
                                    struct_t
                                    [t]
                                    [(Require
                                        r
                                        [t]
                                    )]
                                ),
                            test_template:
                                (Function
                                    (SymbolTable
                                        8
                                        {
                                            1_int_tuple_fst:
                                                (ExternalSymbol
                                                    8
                                                    1_int_tuple_fst
                                                    9 fst
                                                    int_tuple
                                                    []
                                                    fst
                                                    Public
                                                ),
                                            1_int_tuple_snd:
                                                (ExternalSymbol
                                                    8
                                                    1_int_tuple_snd
                                                    9 snd
                                                    int_tuple
                                                    []
                                                    snd
                                                    Public
                                                ),
                                            1_real_tuple_fst:
                                                (ExternalSymbol
                                                    8
                                                    1_real_tuple_fst
                                                    12 fst
                                                    real_tuple
                                                    []
                                                    fst
                                                    Public
                                                ),
                                            1_real_tuple_snd:
                                                (ExternalSymbol
                                                    8
                                                    1_real_tuple_snd
                                                    12 snd
                                                    real_tuple
                                                    []
                                                    snd
                                                    Public
                                                ),
                                            get_int_fst:
                                                (Function
                                                    (SymbolTable
                                                        10
                                                        {
                                                            1_int_tuple_fst:
                                                                (ExternalSymbol
                                                                    10
                                                                    1_int_tuple_fst
                                                                    9 fst
                                                                    int_tuple
                                                                    []
                                                                    fst
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    10
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        8 int_tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    10
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_int_fst
                                                    (FunctionType
                                                        [(StructType
                                                            8 int_tuple
                                                        )]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 10 p)]
                                                    [(Assignment
                                                        (Var 10 r)
                                                        (StructInstanceMember
                                                            (Var 10 p)
                                                            10 1_int_tuple_fst
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 10 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            get_int_snd:
                                                (Function
                                                    (SymbolTable
                                                        11
                                                        {
                                                            1_int_tuple_snd:
                                                                (ExternalSymbol
                                                                    11
                                                                    1_int_tuple_snd
                                                                    9 snd
                                                                    int_tuple
                                                                    []
                                                                    snd
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    11
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        8 int_tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    11
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_int_snd
                                                    (FunctionType
                                                        [(StructType
                                                            8 int_tuple
                                                        )]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 11 p)]
                                                    [(Assignment
                                                        (Var 11 r)
                                                        (StructInstanceMember
                                                            (Var 11 p)
                                                            11 1_int_tuple_snd
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 11 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            get_real_fst:
                                                (Function
                                                    (SymbolTable
                                                        13
                                                        {
                                                            1_real_tuple_fst:
                                                                (ExternalSymbol
                                                                    13
                                                                    1_real_tuple_fst
                                                                    12 fst
                                                                    real_tuple
                                                                    []
                                                                    fst
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    13
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        8 real_tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    13
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_real_fst
                                                    (FunctionType
                                                        [(StructType
                                                            8 real_tuple
                                                        )]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 13 p)]
                                                    [(Assignment
                                                        (Var 13 r)
                                                        (StructInstanceMember
                                                            (Var 13 p)
                                                            13 1_real_tuple_fst
                                                            (Real 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 13 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            get_real_snd:
                                                (Function
                                                    (SymbolTable
                                                        14
                                                        {
                                                            1_real_tuple_snd:
                                                                (ExternalSymbol
                                                                    14
                                                                    1_real_tuple_snd
                                                                    12 snd
                                                                    real_tuple
                                                                    []
                                                                    snd
                                                                    Public
                                                                ),
                                                            p:
                                                                (Variable
                                                                    14
                                                                    p
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (StructType
                                                                        8 real_tuple
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    14
                                                                    r
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    get_real_snd
                                                    (FunctionType
                                                        [(StructType
                                                            8 real_tuple
                                                        )]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 14 p)]
                                                    [(Assignment
                                                        (Var 14 r)
                                                        (StructInstanceMember
                                                            (Var 14 p)
                                                            14 1_real_tuple_snd
                                                            (Real 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 14 r)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            int_tuple:
                                                (Struct
                                                    (SymbolTable
                                                        9
                                                        {
                                                            fst:
                                                                (Variable
                                                                    9
                                                                    fst
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            snd:
                                                                (Variable
                                                                    9
                                                                    snd
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    int_tuple
                                                    []
                                                    [fst
                                                    snd]
                                                    Source
                                                    Private
                                                    .false.
                                                    .false.
                                                    []
                                                    ()
                                                    ()
                                                ),
                                            real_tuple:
                                                (Struct
                                                    (SymbolTable
                                                        12
                                                        {
                                                            fst:
                                                                (Variable
                                                                    12
                                                                    fst
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            snd:
                                                                (Variable
                                                                    12
                                                                    snd
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    real_tuple
                                                    []
                                                    [fst
                                                    snd]
                                                    Source
                                                    Private
                                                    .false.
                                                    .false.
                                                    []
                                                    ()
                                                    ()
                                                ),
                                            ti:
                                                (Variable
                                                    8
                                                    ti
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (StructType
                                                        8 int_tuple
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            tr:
                                                (Variable
                                                    8
                                                    tr
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (StructType
                                                        8 real_tuple
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    test_template
                                    (FunctionType
                                        []
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    []
                                    [(Assignment
                                        (StructInstanceMember
                                            (Var 8 ti)
                                            8 1_int_tuple_fst
                                            (Integer 4)
                                            ()
                                        )
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "First element: "
                                                (String 1 15 () PointerString)
                                            )
                                            (FunctionCall
                                                8 get_int_fst
                                                ()
                                                [((Var 8 ti))]
                                                (Integer 4)
                                                ()
                                                ()
                                            )]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Assignment
                                        (StructInstanceMember
                                            (Var 8 ti)
                                            8 1_int_tuple_snd
                                            (Integer 4)
                                            ()
                                        )
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        ()
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "Second element: "
                                                (String 1 16 () PointerString)
                                            )
                                            (FunctionCall
                                                8 get_int_snd
                                                ()
                                                [((Var 8 ti))]
                                                (Integer 4)
                                                ()
                                                ()
                                            )]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Assignment
                                        (StructInstanceMember
                                            (Var 8 tr)
                                            8 1_real_tuple_fst
                                            (Real 4)
                                            ()
                                        )
                                        (RealConstant
                                            1.000000
                                            (Real 4)
                                        )
                                        ()
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "First element: "
                                                (String 1 15 () PointerString)
                                            )
                                            (FunctionCall
                                                8 get_real_fst
                                                ()
                                                [((Var 8 tr))]
                                                (Real 4)
                                                ()
                                                ()
                                            )]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Assignment
                                        (StructInstanceMember
                                            (Var 8 tr)
                                            8 1_real_tuple_snd
                                            (Real 4)
                                            ()
                                        )
                                        (RealConstant
                                            2.000000
                                            (Real 4)
                                        )
                                        ()
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "Second element: "
                                                (String 1 16 () PointerString)
                                            )
                                            (FunctionCall
                                                8 get_real_snd
                                                ()
                                                [((Var 8 tr))]
                                                (Real 4)
                                                ()
                                                ()
                                            )]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )]
                                    ()
                                    Private
                                    .false.
                                    .false.
                                    ()
                                )
                        })
                    template_struct_01_m
                    [template_struct_01_m]
                    .false.
                    .false.
                )
        })
    []
)
