x: signed int 
y: typedef for double 
t: typedef for float 
z: instance of type y (not function type) 
struct __anonymous0
    with members
      a: signed int 
      b: double 

u: type for instance of struct __anonymous0 
f: function
    with parameters
      y: signed int 
    returning 
      signed int 

q: instance of type y (not function type) 
w: function
    with parameters
      y: instance of type y (not function type) 
      v: instance of type u (not function type) 
    returning 
      instance of type y (not function type) 
    with body 
      CompoundStmt
        Declaration of x: type
          with assertions
            t: function
                with parameters
                  instance of type u (not function type) 
                returning 
                  instance of type x (not function type) 


        Declaration of u: instance of type u (not function type) with initializer 
          Simple Initializer:             Name: y

        Declaration of z: instance of type x (not function type) with initializer 
          Simple Initializer:             Applying untyped: 
                Name: t
            ...to: 
                Name: u


p: instance of type y (not function type) 
context has_u
    with parameters
      z: type

    with members
      u: function
          with parameters
            instance of type z (not function type) 
          returning 
            instance of type z (not function type) 


q: 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) 

          instance of context has_u 
            with parameters
              instance of type t (not function type) 


    function
    with parameters
      the_t: instance of type t (not function type) 
    returning 
      instance of type y (not function type) 
    with body 
      CompoundStmt
        Declaration of y: instance of type t (not function type) with initializer 
          Simple Initializer:             Applying untyped: 
                Name: u
            ...to: 
                Name: the_t


f: function
    with parameters
      p: instance of type y (not function type) 
    returning 
      instance of type t (not function type) 
    with body 
      CompoundStmt
        Declaration of y: signed int 
        Declaration of x: typedef for char 
                  CompoundStmt
            Declaration of y: instance of type x (not function type) 
            Declaration of z: typedef for instance of type x (not function type) 
                          CompoundStmt
                Declaration of x: instance of type z (not function type) 
                Declaration of y: typedef for instance of type z (not function type) 
                Declaration of z: instance of type y (not function type) with initializer 
                  Simple Initializer:                     Name: x


            Declaration of x: instance of type z (not function type) with initializer 
              Simple Initializer:                 Name: y


        Declaration of q: instance of type x (not function type) with initializer 
          Simple Initializer:             Name: y


g: function
    with parameters
      void 
    returning 
      instance of type t (not function type) 
    with body 
      CompoundStmt
        Declaration of x: typedef for char 
                  Try Statement
            with block: 
              CompoundStmt
                                  Expression Statement:
                    Applying untyped: 
                        Name: some_func
                    ...to: 

            and handlers: 
              Catch Statement
              ... catching
x: instance of type x (not function type) 

        Declaration of z: instance of type x (not function type) 

q: function
      accepting unspecified arguments
    returning 
      instance of type y (not function type) 
    with parameter names
      i
    with parameter declarations
      i: signed int 
    with body 
      CompoundStmt
                  Switch on condition: Name: i

              Case Name: 0

                  Return Statement, returning: Name: q

              Default 
                  Return Statement, returning: Name: i



