title: macro expansion in guile scheme
body: <p>In Guix there's a layer made of macros beautifying the creation and manipulation of srfi-9 records</p>
  
  <p>The code is in guix/records.scm</p>
  
  <p>The code is large and articulated</p>
  
  <p>I thought to expand those macros to see their input and their output in order to have a feel of what they do</p>
  
  <p>The thing is that even the standard vanilla srfi-9 records are macros around structures, in their own turn</p>
  
  <p>So the macro expansion gives me a completely expanded code creating and manipulating structures.</p>
  
  <p>I'd prefer to see the result of a single pass of macro expansion, to see what srfi-9 code the guix macros have produced</p>
  
  <p>In Clojure there are <code>macroexpand</code> and <code>macroexpand-1</code></p>
  
  <p><code>macroexpand-1</code> does a single pass of macro expansion and <code>macroexpand</code> calls <code>macroexpand-1</code> repeatedly until there are no more macors to expand in the forms being processed</p>
  
  <p>You can see this <a href="https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/macroexpand-1" rel="nofollow noreferrer">here</a></p>
  
  <p>Is there a similar option in Guile scheme ?</p>
  
  <p>Am I missing any workflow trick, any tool, any library function or macro for dealing with this ?</p>