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

?=?: function
    with parameters
      pointer to float 
      float 
    returning 
      float 

?=?: function
    with parameters
      pointer to double 
      double 
    returning 
      double 

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


      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) 

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


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

f: function
    with parameters
      signed int 
    returning 
      float 

f: function
    with parameters
      signed int 
    returning 
      double 

i: function
    with parameters
      float 
    returning 
      nothing 

h: function
      accepting unspecified arguments
    returning 
      nothing 
    with body 
      CompoundStmt
        Declaration of a: signed int 
                  Expression Statement:
            Applying untyped: 
                Name: i
            ...to: 
                Applying untyped: 
                    Name: g
                ...to: 
                    Name: a


context has_f_and_j
    with parameters
      T: type
      U: type

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

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


j: function
    with parameters
      signed int 
      float 
    returning 
      float 

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


      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) 

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

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


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

l: function
      accepting unspecified arguments
    returning 
      nothing 
    with body 
      CompoundStmt
        Declaration of b: signed int 
                  Expression Statement:
            Applying untyped: 
                Name: i
            ...to: 
                Applying untyped: 
                    Name: k
                ...to: 
                    Name: b


