T: type
  with assertions
    x: function
        with parameters
          instance of type T (not function type) 
        returning 
          instance of type T (not function type) 


?=?: automatically generated function
    with parameters
      _dst: pointer to instance of type T (not function type) 
      _src: instance of type T (not function type) 
    returning 
      instance of type T (not function type) 

y: function
    with parameters
      t: instance of type T (not function type) 
    returning 
      instance of type T (not function type) 
    with body 
      CompoundStmt
        Declaration of t_instance: instance of type T (not function type) 
                  Return Statement, returning: Applying untyped: 
    Name: x
...to: 
    Name: t



*?: forall
      T: type
        with assertions
          ?=?: pointer to 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
      pointer to instance of type T (not function type) 
    returning 
      lvalue instance of type T (not function type) 

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

?=?: 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) 

U: type for pointer to signed int 
?=?: automatically generated function
    with parameters
      _dst: pointer to instance of type U (not function type) 
      _src: instance of type U (not function type) 
    returning 
      instance of type U (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Applying untyped: 
    Name: ?=?
...to: 
    Cast of:
      Variable Expression: _dst: pointer to instance of type U (not function type) 

    to:
      pointer to pointer to signed int 
    Cast of:
      Variable Expression: _src: instance of type U (not function type) 

    to:
      pointer to signed int 



x: function
    with parameters
      u: instance of type U (not function type) 
    returning 
      instance of type U (not function type) 
    with body 
      CompoundStmt
        Declaration of u_instance: instance of type U (not function type) with initializer 
          Simple Initializer:             Name: u

                  Expression Statement:
            Applying untyped: 
                Name: ?=?
            ...to: 
                Address of:
                  Name: u_instance
                Name: u

                  Expression Statement:
            Applying untyped: 
                Name: ?++
            ...to: 
                Address of:
                  Applying untyped: 
                      Name: *?
                  ...to: 
                      Name: u

                  Return Statement, returning: Name: u



break_abstraction: function
    with parameters
      u: instance of type U (not function type) 
    returning 
      pointer to signed int 
    with body 
      CompoundStmt
                  Return Statement, returning: Name: u



