just for reference, this is the whole text
(define-public guile-miniadapton
(package
(name "guile-miniadapton")
(version "master")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fisherdj/miniAdapton")
(commit "1b5749422304567c96ac5367f2221dda9eff5880")))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
(build-system gnu-build-system)
(arguments
`(#:modules
((guix build utils)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim)
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(effective (read-line
(open-pipe* OPEN_READ
"guile" "-c"
"(display (effective-version))")))
(zero? (system* "tree"))
(module-dir (string-append out "/share/guile/site/"
effective))
(source (assoc-ref inputs "source"))
;;(scm-files (find-files "." "\\.scm$"))
(scm-files '("include.scm"
"microadapton.scm"
"microadapton-impl.scm"
"microadapton-types.scm"
"memoization.scm"
"memoization-impl.scm"
"miniadapton.scm"
"miniadapton-impl.scm"
"set.scm"
"set-impl.scm"))
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild")))
;; Make installation directories.
;;(mkdir-p (string-append module-dir "source"))
(mkdir-p module-dir)
;; Compile .scm files and install.
(setenv "GUILE_AUTO_COMPILE" "0")
(for-each (lambda (file)
(let* ((dest-file (string-append
module-dir "/"
file))
(go-file (match (string-split file #\.)
((base _)
(string-append module-dir "/" base ".go")))))
;; Install source module.
(copy-file file
dest-file)
;; Install compiled module.
(unless (zero? (system* guild "compile"
"-L" (getcwd)
"-o" go-file
file))
(error (format #f "Failed to compile ~s to ~s!"
file dest-file)))))
scm-files)
#t))))))
(inputs
`(("guile" ,guile-2.2)))
(native-inputs
`(("tree" ,tree)))
(home-page "https://github.com/fisherdj/miniAdapton")
(synopsis "a minimal implementation of incremental computation
in (Guile) Scheme")
(description
"a complete Scheme implementation of
miniAdapton, which implements the core functionality of the
Adapton system for incremental computation (also known
as self-adjusting computation).
Like Adapton, miniAdapton allows programmers to safely combine
mutation and memoization.
miniAdapton is built on top of an even simpler system,
microAdapton.
Both miniAdapton and microAdapton
are designed to be easy to understand, extend, and port to
host languages other than Scheme.")
(license license:expat)))