(define (trace name parser #!optional trace-failure?) (any-of (bind parser (lambda (x) (pp (list 'success name x)) (result x))) (lambda (in) (when trace-failure? (pp (list 'fail name in))) #f)))