A small utility macro to allow defines in expression context of function bodies. Install it in your site-dir and import it using (use-modules (syntax define))
(use-modules (syntax def)) (define (divide-minus-one a b) (when (= b 1) (error "We don't allow that here")) (define b* (- b 1)) (/ a b*))
This transforms all defines in expression context to (letrec ...).
The bodies of begin, lambda, define, let, let*, letrec, letrec*, case and cond are transversed and transformed.
This is a module-local transformation, thus macros imported from other modules don't allow this transformation.
The macros are currently written in syntax-rules. If that isn't supported in your scheme, then tough luck.
There is none.