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

?*?: function
    with parameters
      signed int 
      signed int 
    returning 
      signed int 

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

          ?*?: pointer to function
              with parameters
                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
      t: instance of type T (not function type) 
    returning 
      instance of type T (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Applying untyped: 
    Name: ?*?
...to: 
    Name: t
    Name: t



quad: forall
      U: type
        with assertions
          ?=?: pointer to 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) 

          square: pointer to function
              with parameters
                instance of type U (not function type) 
              returning 
                instance of type U (not function type) 


    function
    with parameters
      u: instance of type U (not function type) 
    returning 
      instance of type U (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Applying untyped: 
    Name: square
...to: 
    Applying untyped: 
        Name: square
    ...to: 
        Name: u



f: function
      accepting unspecified arguments
    returning 
      nothing 
    with body 
      CompoundStmt
                  Expression Statement:
            Applying untyped: 
                Name: quad
            ...to: 
constant expression 7 signed int 

