#lang racket (define-syntax mycompose (syntax-rules () ((_) values) ((_ f1 f2 ...) (lambda (x . more) (call-with-values (thunk (apply (mycompose f2 ...) x more)) f1)))))