?=?: function
    with parameters
      pointer to signed int 
      signed int 
    returning 
      signed int 

?=?: forall
      DT: incomplete type
    function
    with parameters
      pointer to pointer to instance of type DT (not function type) 
      pointer to instance of type DT (not function type) 
    returning 
      pointer to instance of type DT (not function type) 

a: function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
        Declaration of f: forall
              T: type
                with assertions
                  ?=?: function
                      with parameters
                        pointer to instance of type T (not function type) 
                        instance of type T (not function type) 
                      returning 
                        instance of type T (not function type) 


            function
            with parameters
              instance of type T (not function type) 
            returning 
              void 

        Declaration of g: function
            with parameters
              p: forall
                    U: type
                      with assertions
                        ?=?: function
                            with parameters
                              pointer to instance of type U (not function type) 
                              instance of type U (not function type) 
                            returning 
                              instance of type U (not function type) 


                  function
                  with parameters
                    instance of type U (not function type) 
                  returning 
                    void 

            returning 
              void 

                  Expression Statement:
            Applying untyped: 
                Name: g
            ...to: 
                Name: f


g: function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
        Declaration of h: function
            with parameters
              null: pointer to signed int 
            returning 
              void 

        Declaration of id: forall
              T: type
                with assertions
                  ?=?: function
                      with parameters
                        pointer to instance of type T (not function type) 
                        instance of type T (not function type) 
                      returning 
                        instance of type T (not function type) 


            function
            with parameters
              instance of type T (not function type) 
            returning 
              instance of type T (not function type) 

        Declaration of 0: forall
              T: incomplete type
            pointer to instance of type T (not function type) 
        Declaration of 0: signed int 
                  Expression Statement:
            Applying untyped: 
                Name: h
            ...to: 
                Applying untyped: 
                    Name: id
                ...to: 
                    Applying untyped: 
                        Name: id
                    ...to: 
                        Applying untyped: 
                            Name: id
                        ...to: 
                            Name: 0


