(define (parse-timestamp input) (parse (bind (followed-by (sequence (map (lambda (suffix p) (maybe (sequence* ((number (as-string (one-or-more (in char-set:digit)))) (_ (char-seq (symbol->string suffix)))) (result (* (string->number number) (expt 60 p)))) 0)) '(h m s) (reverse (iota 3)))) end-of-input) (o result (cut fold + 0 <>))) input))