Adding context has_q --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding function q --- Entering scope --- Leaving scope containing --- Leaving scope containing q (__q__F_2tT_2tT_) (1) T Adding function f --- Entering scope Adding type z --- Entering scope --- Leaving scope containing Adding function q --- Entering scope --- Leaving scope containing --- Entering scope Adding context has_r --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding type U --- Entering scope --- Leaving scope containing Adding function r --- Entering scope --- Leaving scope containing --- Leaving scope containing r (__r__F_2tT_2tTPF_2tT_2tT2tU__) (3) T U Adding type x --- Entering scope --- Leaving scope containing Adding type y --- Entering scope --- Leaving scope containing Adding function r --- Entering scope --- Leaving scope containing --- Leaving scope containing r (__r__F_2tx_2txPF_2tx_2tx2ty__) (2) x y has_r --- Leaving scope containing q (__q__F_2tz_2tz_) (1) z