(define (pair x y)
(vector x y))
(define (fst v)
(vector-ref v 0))
(define (snd v)
(vector-ref v 1))
(define (f g p)
(pair (g (fst p))
(g (snd p))))
(define (show x)
(with-output-to-string
(lambda () (write x))))
(write (f show (pair 1 #\a)))
(newline)
KGRlZmluZSAocGFpciB4IHkpCiAgKHZlY3RvciB4IHkpKQoKKGRlZmluZSAoZnN0IHYpCiAgKHZlY3Rvci1yZWYgdiAwKSkKCihkZWZpbmUgKHNuZCB2KQogICh2ZWN0b3ItcmVmIHYgMSkpCgooZGVmaW5lIChmIGcgcCkKICAocGFpciAoZyAoZnN0IHApKQogICAgICAgIChnIChzbmQgcCkpKSkKCihkZWZpbmUgKHNob3cgeCkKICAod2l0aC1vdXRwdXQtdG8tc3RyaW5nCiAgICAobGFtYmRhICgpICh3cml0ZSB4KSkpKQoKKHdyaXRlIChmIHNob3cgKHBhaXIgMSAjXGEpKSkKKG5ld2xpbmUp