Good day, what are your opinions on srfi 145? Looking at it, it could be a decent r7rs portable way to provide some degree of static type checking. The work would involve adding a syntax tree rewrite pass. For example, code such as (define (foo a) (assume (integer? a)) ...) would be transformed to (define (foo a ::int) ...) and then the rest of it would be usual kawa behavior. Certainly making it as powerful as a standard kawa syntax would be very difficult, but perhaps it's not necessary? I think handling only function parameters + let bindings, and only handling base types + user defined simple records would pragmatically cover a lot of useful cases. If there is a consensus that this would be useful, I'll give it a shot at implementing it myself. Arvydas