/compose { % f g -> { g f } [ 3 1 roll exch % procedures are not executed when encountered directly % insert an 'exec' after procedures, but not after operators 1 index type /operatortype ne { /exec cvx exch } if dup type /operatortype ne { /exec cvx } if ] cvx } def /square { dup mul } def /plus1 { 1 add } def /sqPlus1 /square load /plus1 load compose def