There's a piece of code (in the Emacs build system) I don't understand In "guix/build-system/emacs.scm" on line 97 there's a call to a function called "emacs-build" Such call is inside the body of "emacs-build" itself. As it is common in scheme, a function is calling itself (recursively) Now, I read the SICP and the discussion about functions implementing processes that can be iterative or recursive (in both cases the function calls itself) But I don't understand what is going on here Why is "emacs-build" calling itself ? Is this an iterative or recursive process ? And what value is this calculating ? I see that the result of this calculation (" (define builder..." ) is passed as an argument to "build-expression->derivation" a few lines below But I don't get what build-expression->derivation is receiving really. Also what's with that "define*" ? Is there a manual page describing it ? I couldn't find it