Hi there, I've been playing around with Guile's implementation of SRFI 45 (which uses SRFI 9), and have noticed something interesting: if you run the following code in the REPL, printing out the value of the promise will cause a stack overflow: (use-modules (srfi srfi-45)) (define promise (delay promise)) (force promise) #> For reproducibility, I attached the diff to make SRFI 45 use Guile native records. So, it seems like SRFI 9's record printer doesn't handle cycles in the record data very well. Unfortunately I don't know how to fix this (I tried looking at the printer for Guile's native records, but couldn't figure out what made it special enough to handle cycles correctly), so no fix is attached. Many thanks, Chris.