As I get more familiar with Gambit, I find it's notion of ports to be really really useful. However, I don't know how to create these structures myself. Can someone point me to some sample code? A really great example would be something like:
(define-type tagged-data tag data)
then, as a piece of data is written to the output port, it's tagged with a (increasing number), and when it's read off the input port, it's a piece of tagged data
so ssuppose I wrote 'a 'b 'c 'd 'e to the port
then when I read from it, I get back
(make-tagged-data 1 'a) (make-tagged-data 2 'b) ... (make-tagged-data 5 'e)
The point of this isn't this particular problem, but to understand what abstractions I need to provide when writing my own ports.
Thanks!