Hi, I'm willing to install the attached patch soon: it adds support for SRFI-35. Guile-Lib already contains an implementation (by Andreas Rottmann). However, it's based on GOOPS, which I wanted to avoid, so I "rolled my own", using bare structs. Running `srfi-35.test' is roughly 3 times faster with the struct-based version than with the GOOPS-based version (part of which is due to the loading time of GOOPS itself). I also measured the time taken to create a condition type using the following snipped: (use-modules (srfi srfi-35)) (let loop ((i 1000)) (if (<= i 0) #t (let ((top (make-condition-type 'top &condition '(a b c)))) (make-condition-type 'bottom top '(d e f)) (loop (1- i))))) With the GOOPS-based version, we get: $ time guile ,,srfi-35-prof.scm real 0m10.251s user 0m9.825s sys 0m0.012s With the struct-based version: $ time guile -L . ,,srfi-35-prof.scm real 0m0.077s user 0m0.072s sys 0m0.004s So it has the potential to improve the startup time of SRFI-35-using programs. ;-) That's also an indication that it may be worth profiling `make-class' (which is used by `make-condition-type' and Andreas' implementation). If you have Guile-Lib installed, note that Guile-Lib's implementation will still be used because the `site' directory appears before Guile's directory in `%load-path'. Thanks, Ludovic.