context has_q
    with parameters
      T: type

    with members
      q: function
          with parameters
            instance of type T (not function type) 
          returning 
            instance of type T (not function type) 


f: forall
      z: type
        with assertions
          ?=?: function
              with parameters
                pointer to instance of type z (not function type) 
                instance of type z (not function type) 
              returning 
                instance of type z (not function type) 

          instance of context has_q 
            with parameters
              instance of type z (not function type) 


    function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
        Declaration of context has_r
            with parameters
              T: type
              U: type

            with members
              r: function
                  with parameters
                    instance of type T (not function type) 
                    function
                        with parameters
                          instance of type T (not function type) 
                          instance of type U (not function type) 
                        returning 
                          instance of type T (not function type) 

                  returning 
                    instance of type T (not function type) 


        Declaration of x: extern type
        Declaration of y: extern type
          with assertions
            instance of context has_r 
              with parameters
                instance of type x (not function type) 
                instance of type y (not function type) 



