define p use p define y define f define g ( ) { use y p } define f ( p x ) { use f y p x } use p p call f define q call g define z use p y q call f f