Subject: Add Multiple Common Lisp Packages
From: Katherine Cox-Buday <[email-masked]>
To: [email-masked]
Date: Fri, 07 Jun 2019 19:08:27 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

From f788ea131dc4871935a2fa38dbdb0f08588564a8 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:04:49 -0500
Subject: [PATCH 01/15] gnu: Add clunit.

* gnu/packages/lisp.scm (clunit): New variable.
---
 gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index dfc58d469f..23df16895e 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5369,3 +5369,36 @@ command line, to data scanning and extracting scripts, to full application
 development in a wide-range of areas.")
     (home-page "https://nongnu.org/txr/")
     (license license:bsd-2)))
+
+(define-public sbcl-clunit
+  (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
+        (revision "1"))
+    (package
+      (name "sbcl-clunit")
+      (version (git-version "0.2.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tgutu/clunit.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "CLUnit is a Common Lisp unit testing framework.")
+      (description
+       "CLUnit is a Common Lisp unit testing framework. It is designed
+to be easy to use so that you can quickly start testing. CLUnit
+provides a rich set of features aimed at improving your unit testing
+experience.")
+      (home-page "http://tgutu.github.io/clunit/")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-clunit
+  (sbcl-package->cl-source-package sbcl-clunit))
+
+(define-public ecl-clunit
+  (sbcl-package->ecl-package sbcl-clunit))
-- 
2.17.1

From 675acd64bc2969d419c9c5a0c2e5496528259d71 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:13:45 -0500
Subject: [PATCH 02/15] gnu: Add py4cl.

* gnu/packages/lisp.scm (py4cl): New variable.
---
 gnu/packages/lisp.scm | 63 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 23df16895e..9a01db3c80 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -65,6 +65,8 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
@@ -5402,3 +5404,64 @@ experience.")
 
 (define-public ecl-clunit
   (sbcl-package->ecl-package sbcl-clunit))
+
+(define-public sbcl-py4cl
+  (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
+        (revision "1"))
+    (package
+      (name "sbcl-py4cl")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bendudson/py4cl.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
+         (modules '((guix build utils)))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("sbcl-clunit" ,sbcl-clunit)))
+      (inputs
+       `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+      (propagated-inputs
+       ;; This package doesn't do anything without python available
+       `(("python" ,python)
+         ;; For multi-dimensional array support
+         ("python-numpy" ,python-numpy)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'replace-*base-directory*-var
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; In the ASD, the author makes an attempt to
+               ;; programatically determine the location of the
+               ;; source-code so lisp can call into "py4cl.py". We can
+               ;; hard-code this since we know where this file will
+               ;; reside.
+               (substitute* "src/callpython.lisp"
+                 (("py4cl/config:\\*base-directory\\*")
+                  (string-append
+                   "\""
+                   (assoc-ref outputs "out")
+                   "/share/common-lisp/sbcl-source/py4cl/"
+                   "\""))))))))
+      (synopsis "Call python from Common Lisp.")
+      (description
+       "Py4CL is a bridge between Common Lisp and Python, which
+enables Common Lisp to interact with Python code. It uses streams to
+communicate with a separate python process, the approach taken by
+cl4py. This is different to the CFFI approach used by
+burgled-batteries, but has the same goal.")
+      (home-page "https://github.com/bendudson/py4cl")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-py4cl
+  (sbcl-package->cl-source-package sbcl-py4cl))
+
+(define-public ecl-py4cl
+  (sbcl-package->ecl-package sbcl-py4cl))
-- 
2.17.1

From 5fc2eee895a58d7ecb4abfbbfb6791f9ffa47e2f Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:15:50 -0500
Subject: [PATCH 03/15] gnu: Add parse-declarations.

* gnu/packages/lisp.scm (parse-declarations): New variable.
---
 gnu/packages/lisp.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 9a01db3c80..9c6cf4224b 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5465,3 +5465,40 @@ burgled-batteries, but has the same goal.")
 
 (define-public ecl-py4cl
   (sbcl-package->ecl-package sbcl-py4cl))
+
+(define-public sbcl-parse-declarations
+  (package
+    (name "sbcl-parse-declarations")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/parse-declarations/"
+             "2010-10-06/parse-declarations-20101006-darcs.tgz"))
+       (sha256
+        (base32
+         "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     `(#:asd-file "parse-declarations-1.0.asd"
+       #:asd-system-name "parse-declarations-1.0"))
+    (home-page "https://common-lisp.net/project/parse-declarations/")
+    (synopsis
+     "Parse-Declarations is a library to parse, filter, and build
+declarations.")
+    (description
+     "Parse-Declarations is a Common Lisp library to help writing
+macros which establish bindings. To be semantically correct, such
+macros must take user declarations into account, as these may affect
+the bindings they establish. Yet the ANSI standard of Common Lisp does
+not provide any operators to work with declarations in a convenient,
+high-level way. This library provides such operators.")
+    ;; MIT License
+    (license license:expat)))
+
+(define-public cl-parse-declarations
+  (sbcl-package->cl-source-package sbcl-parse-declarations))
+
+(define-public ecl-parse-declarations
+  (sbcl-package->ecl-package sbcl-parse-declarations))
-- 
2.17.1

From 717d09604a3db1026c66fa5117ba4ce7ce5c1d7c Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:17:15 -0500
Subject: [PATCH 04/15] gnu: Add cl-quickcheck.

* gnu/packages/lisp.scm (cl-quickcheck): New variable.
---
 gnu/packages/lisp.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 9c6cf4224b..ada4b86023 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5502,3 +5502,34 @@ high-level way. This library provides such operators.")
 
 (define-public ecl-parse-declarations
   (sbcl-package->ecl-package sbcl-parse-declarations))
+
+(define-public sbcl-cl-quickcheck
+  (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-quickcheck")
+      (version (git-version "0.0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mcandre/cl-quickcheck.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis
+       "Common Lisp port of the QuickCheck unit test framework")
+      (description
+       "Common Lisp port of the QuickCheck unit test framework")
+      (home-page "https://github.com/mcandre/cl-quickcheck")
+      ;; MIT
+      (license license:expat))))
+
+(define-public cl-cl-quickcheck
+  (sbcl-package->cl-source-package sbcl-cl-quickcheck))
+
+(define-public ecl-cl-quickcheck
+  (sbcl-package->ecl-package sbcl-cl-quickcheck))
-- 
2.17.1

From 0ad275a14a8035306921283071ed57abed89ce34 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:19:50 -0500
Subject: [PATCH 05/15] gnu: Add burgled-batteries3.

* gnu/packages/lisp.scm (burgled-batteries3): New variable.
---
 gnu/packages/lisp.scm | 61 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ada4b86023..38cd9c3a18 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5533,3 +5533,64 @@ high-level way. This library provides such operators.")
 
 (define-public ecl-cl-quickcheck
   (sbcl-package->ecl-package sbcl-cl-quickcheck))
+
+(define-public sbcl-burgled-batteries3
+  (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
+        (revision "1"))
+    (package
+      (name "sbcl-burgled-batteries3")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/snmsts/burgled-batteries3.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'set-*cpython-include-dir*-var
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; TODO: explain
+               (substitute* "grovel-include-dir.lisp"
+                 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
+                  (string-append
+                   "(defparameter *cpython-include-dir* \""
+                   (assoc-ref inputs "python")
+                   "/include/python3.7m"
+                   "\")")))
+               (substitute* "ffi-interface.lisp"
+                 (("\\*cpython-lib\\*")
+                  (format #f "'(\"~a/lib/libpython3.so\")"
+                          (assoc-ref inputs "python")))))))))
+      (native-inputs
+       `(("python" ,python)
+         ("sbcl-cl-fad" ,sbcl-cl-fad)
+         ("sbcl-lift" ,sbcl-lift)
+         ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
+      (inputs
+       `(("sbcl-cffi" ,sbcl-cffi)
+         ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
+         ("sbcl-alexandria" , sbcl-alexandria)
+         ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
+         ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+      (synopsis
+       "A bridge between Python and Lisp (FFI bindings, etc.)")
+      (description
+       "Provides a shim between Python3 (specifically, the CPython
+implementation of Python) and Common Lisp.")
+      (home-page "https://github.com/snmsts/burgled-batteries3")
+      ;; MIT
+      (license license:expat))))
+
+(define-public cl-burgled-batteries3
+  (sbcl-package->cl-source-package sbcl-burgled-batteries3))
+
+(define-public ecl-burgled-batteries3
+  (sbcl-package->ecl-package sbcl-burgled-batteries3))
-- 
2.17.1

From aeb00a9896b97ec8e43d4a7d3d722a09780aacd7 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:21:16 -0500
Subject: [PATCH 06/15] gnu: Add metabang-bind.

* gnu/packages/lisp.scm (metabang-bind): New variable.
---
 gnu/packages/lisp.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 38cd9c3a18..67c34be680 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5594,3 +5594,42 @@ implementation of Python) and Common Lisp.")
 
 (define-public ecl-burgled-batteries3
   (sbcl-package->ecl-package sbcl-burgled-batteries3))
+
+(define-public sbcl-metabang-bind
+  (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
+        (revision "1"))
+    (package
+      (name "sbcl-metabang-bind")
+      (version (git-version "0.8.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gwkkwg/metabang-bind.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("sbcl-lift" ,sbcl-lift)))
+      (synopsis
+       "Bind is a macro that generalizes multiple-value-bind, let,
+let*, destructuring-bind, structure and slot accessors, and a whole
+lot more.")
+      (description
+       "Bind extends the idea of of let and destructing to provide a
+uniform syntax for all your accessor needs. It combines let,
+destructuring-bind, with-slots, with-accessors, structure editing,
+property or association-lists, and multiple-value-bind and a whole lot
+more into a single form.")
+      (home-page "https://common-lisp.net/project/metabang-bind/")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-metabang-bind
+  (sbcl-package->cl-source-package sbcl-metabang-bind))
+
+(define-public ecl-metabang-bind
+  (sbcl-package->ecl-source-package sbcl-metabang-bind))
-- 
2.17.1

From 41dd673771dff83d43e6b796896c01c5f00e7397 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:23:15 -0500
Subject: [PATCH 07/15] gnu: Add fare-utils.

* gnu/packages/lisp.scm (fare-utils): New variable.
---
 gnu/packages/lisp.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 67c34be680..1d5da17195 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5633,3 +5633,42 @@ more into a single form.")
 
 (define-public ecl-metabang-bind
   (sbcl-package->ecl-source-package sbcl-metabang-bind))
+
+(define-public sbcl-fare-utils
+  (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
+        (revision "1"))
+    (package
+      (name "sbcl-fare-utils")
+      (version (git-version "1.0.0.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url
+            "https://gitlab.common-lisp.net/frideau/fare-utils.git")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:test-asd-file "test/fare-utils-test.asd"))
+      (native-inputs
+       `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+      (synopsis
+       "Basic functions and macros, interfaces, pure and stateful
+datastructures")
+      (description
+       "fare-utils is a small collection of utilities. It contains a
+lot of basic everyday functions and macros")
+      (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-fare-utils
+  (sbcl-package->cl-source-package sbcl-fare-utils))
+
+(define-public ecl-fare-utils
+  (sbcl-package->ecl-package sbcl-fare-utils))
-- 
2.17.1

From b62c757389b1b6eee909c7c121d4aef3515b17b8 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:24:58 -0500
Subject: [PATCH 08/15] gnu: Add trivial-utf-8.

* gnu/packages/lisp.scm (trivial-utf-8): New variable.
---
 gnu/packages/lisp.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 1d5da17195..e4f1cba12d 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5672,3 +5672,45 @@ lot of basic everyday functions and macros")
 
 (define-public ecl-fare-utils
   (sbcl-package->ecl-package sbcl-fare-utils))
+
+(define-public sbcl-trivial-utf-8
+  (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
+        (revision "1"))
+    (package
+      (name "sbcl-trivial-utf-8")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url (string-append "https://gitlab.common-lisp.net/"
+                               "trivial-utf-8/trivial-utf-8.git"))
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
+      (arguments
+       ;; Guix incorrectly assumes the "8" is part of the version
+       ;; number and lobs it off.
+       `(#:asd-file "trivial-utf-8.asd"
+         #:asd-system-name "trivial-utf-8"))
+      (build-system asdf-build-system/sbcl)
+      (synopsis
+       "Trivial UTF-8 is a small library for doing UTF-8-based in- and
+output on a Lisp implementation that already supports Unicode.")
+      (description
+       "The Babel library solves a similar problem while understanding
+more encodings. Trivial UTF-8 was written before Babel existed, but
+for new projects you might be better off going with Babel. The one
+plus that Trivial UTF-8 has is that it doesn't depend on any other
+libraries.")
+      (home-page "https://common-lisp.net/project/trivial-utf-8/")
+      (license license:bsd-3))))
+
+(define-public cl-trivial-utf-8
+  (sbcl-package->cl-source-package sbcl-trivial-utf-8))
+
+(define-public ecl-trivial-utf-8
+  (sbcl-package->ecl-package sbcl-trivial-utf-8))
-- 
2.17.1

From 2c56db1e5ea59dd82e07065515d1a576255a88cc Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:48:30 -0500
Subject: [PATCH 09/15] gnu: Add antik.

* gnu/packages/lisp.scm (antik): New variable.
---
 gnu/packages/lisp.scm | 122 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 122 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index e4f1cba12d..b5a221e1ac 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5714,3 +5714,125 @@ libraries.")
 
 (define-public ecl-trivial-utf-8
   (sbcl-package->ecl-package sbcl-trivial-utf-8))
+
+(define-public sbcl-antik-base
+  (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
+        (revision "1"))
+    (package
+      (name "sbcl-antik-base")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/antik/antik.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-iterate" ,sbcl-iterate)
+         ("sbcl-alexandria" ,sbcl-alexandria)
+         ("sbcl-metabang-bind" ,sbcl-metabang-bind)
+         ("sbcl-named-readtables" ,sbcl-named-readtables)
+         ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+         ("sbcl-split-sequence" ,sbcl-split-sequence)))
+      (native-inputs
+       `(("sbcl-lisp-unit" ,sbcl-lisp-unit)))
+      (synopsis
+       "Antik provides a foundation for scientific and engineering
+computation in Common Lisp.")
+      (description
+       "Antik provides a foundation for scientific and engineering
+computation in Common Lisp. It is designed not only to facilitate
+numerical computations, but to permit the use of numerical computation
+libraries and the interchange of data and procedures, whether
+foreign (non-Lisp) or Lisp libraries. It is named after the
+Antikythera mechanism, one of the oldest examples of a scientific
+computer known.")
+      (home-page "https://common-lisp.net/project/antik/")
+      (license license:gpl3))))
+
+(define-public sbcl-foreign-array
+  (package
+    (inherit sbcl-antik-base)
+    (name "sbcl-foreign-array")
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
+       ((#:asd-file _ "") "foreign-array.asd")
+       ((#:asd-system-name _ #f) "foreign-array")))
+    (inputs
+     `(("sbcl-antik-base" ,sbcl-antik-base)
+       ("sbcl-cffi" ,sbcl-cffi)
+       ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
+       ("sbcl-static-vectors" ,sbcl-static-vectors)))
+    (synopsis
+     "A library providing access to foreign (i.e., C) arrays.")))
+
+(define-public cl-foreign-array
+  (sbcl-package->cl-source-package sbcl-foreign-array))
+
+(define-public ecl-foreign-array
+  (sbcl-package->ecl-package sbcl-foreign-array))
+
+(define-public sbcl-physical-dimension
+  (package
+    (inherit sbcl-antik-base)
+    (name "sbcl-physical-dimension")
+    (inputs
+     `(("sbcl-foreign-array" ,sbcl-foreign-array)
+       ("sbcl-fare-utils" ,sbcl-fare-utils)
+       ("sbcl-trivial-utf-8" ,sbcl-trivial-utf-8)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
+       ((#:asd-file _ "") "physical-dimension.asd")
+       ((#:asd-system-name _ #f) "physical-dimension")))
+    (synopsis
+     "A library to provide computations with physical dimension, i.e.
+units.")))
+
+(define-public cl-physical-dimension
+  (sbcl-package->cl-source-package sbcl-physical-dimension))
+
+(define-public ecl-physical-dimension
+  (sbcl-package->ecl-package sbcl-physical-dimension))
+
+(define-public sbcl-science-data
+  (package
+    (inherit sbcl-antik-base)
+    (name "sbcl-science-data")
+    (inputs
+     `(("sbcl-physical-dimension" ,sbcl-physical-dimension)
+       ("sbcl-drakma" ,sbcl-drakma)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
+       ((#:asd-file _ "") "science-data.asd")
+       ((#:asd-system-name _ #f) "science-data")))
+    (synopsis
+     "Numerical data science and engineering data.")))
+
+(define-public cl-science-data
+  (sbcl-package->cl-source-package sbcl-science-data))
+
+(define-public ecl-science-data
+  (sbcl-package->ecl-package sbcl-science-data))
+
+(define-public sbcl-antik
+  (package
+    (inherit sbcl-antik-base)
+    (name "sbcl-antik")
+    (inputs
+     `(("sbcl-physical-dimension" ,sbcl-physical-dimension)
+       ("sbcl-gsll" ,sbcl-gsll)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
+       ((#:asd-file _ "") "antik.asd")
+       ((#:asd-system-name _ #f) "antik")))))
+
+(define-public cl-antik
+  (sbcl-package->cl-source-package sbcl-antik))
+
+(define-public ecl-antik
+  (sbcl-package->ecl-package sbcl-antik))
-- 
2.17.1

From 137383e0307c33ab557b3d6e14e966406148d88f Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 15:51:25 -0500
Subject: [PATCH 10/15] gnu: Add gsll.

* gnu/packages/lisp.scm (gsll): New variable.
---
 gnu/packages/lisp.scm | 67 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index b5a221e1ac..90ea0797b6 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5836,3 +5836,70 @@ units.")))
 
 (define-public ecl-antik
   (sbcl-package->ecl-package sbcl-antik))
+
+(define-public sbcl-gsll
+  (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
+        (revision "1"))
+    (package
+      (name "sbcl-gsll")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/antik/gsll.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("sbcl-lisp-unit" ,sbcl-lisp-unit)))
+      (inputs
+       `(("sbcl-foreign-array" ,sbcl-foreign-array)
+         ("cffi-libffi" ,sbcl-cffi-libffi)
+         ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
+         ("gsl" ,gsl)
+         ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
+         ("sbcl-alexandria" ,sbcl-alexandria)
+         ("sbcl-metabang-bind" ,sbcl-metabang-bind)
+         ("sbcl-trivial-features" ,sbcl-trivial-features)))
+      (arguments
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-cffi-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "gsll.asd"
+                 ((":depends-on \\(#:foreign-array")
+                  ":depends-on (#:foreign-array #:cffi-libffi"))
+               (substitute* "init/init.lisp"
+                 (("libgslcblas.so" all)
+                  (string-append
+                   (assoc-ref inputs "gsl") "/lib/" all)))
+               (substitute* "init/init.lisp"
+                 (("libgsl.so" all)
+                  (string-append
+                   (assoc-ref inputs "gsl") "/lib/" all))))))))
+      (synopsis
+       "The GNU Scientific Library for Lisp (GSLL) allows the use of the
+GNU Scientific Library (GSL) from Common Lisp.")
+      (description
+       "The GNU Scientific Library for Lisp (GSLL) allows the use of the
+GNU Scientific Library (GSL) from Common Lisp. This library provides a
+full range of common mathematical operations useful to scientific and
+engineering applications. The design of the GSLL interface is such
+that access to most of the GSL library is possible in a Lisp-natural
+way; the intent is that the user not be hampered by the restrictions
+of the C language in which GSL has been written. GSLL thus provides
+interactive use of GSL for getting quick answers, even for someone not
+intending to program in Lisp.")
+      (home-page "https://common-lisp.net/project/gsll/")
+      (license license:gpl3))))
+
+(define-public cl-gsll
+  (sbcl-package->cl-source-package sbcl-gsll))
+
+(define-public ecl-gsll
+  (sbcl-package->ecl-package sbcl-gsll))
-- 
2.17.1

From 33f1fc6558e0a5ea4be224117908a6090318f6f7 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 16:03:47 -0500
Subject: [PATCH 11/15] gnu: Add cl-interpol.

* gnu/packages/lisp.scm (cl-interpol): New variable.
---
 gnu/packages/lisp.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 90ea0797b6..5c3ebb6b57 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5903,3 +5903,42 @@ intending to program in Lisp.")
 
 (define-public ecl-gsll
   (sbcl-package->ecl-package sbcl-gsll))
+
+(define-public sbcl-cl-interpol
+  (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-interpol")
+      (version (git-version "0.2.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edicl/cl-interpol.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-cl-unicode" ,sbcl-cl-unicode)
+         ("sbcl-named-readtables" ,sbcl-named-readtables)))
+      (native-inputs
+       `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+      (synopsis
+       "Common Lisp surface syntax niceties.")
+      (description
+       "CL-INTERPOL is a library for Common Lisp which modifies the
+reader so that you can have interpolation within strings similar to
+Perl or Unix Shell scripts. It also provides various ways to insert
+arbitrary characters into literal strings even if your editor/IDE
+doesn't support them.")
+      (home-page "https://edicl.github.io/cl-interpol/")
+      (license license:bsd-3))))
+
+(define-public cl-cl-interpol
+  (sbcl-package->cl-source-package sbcl-cl-interpol))
+
+(define-public ecl-cl-interpol
+  (sbcl-package->ecl-package sbcl-cl-interpol))
-- 
2.17.1

From 095a1be659e29a382976b76ed1862982bed43b76 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 16:09:25 -0500
Subject: [PATCH 12/15] gnu: Add symbol-munger, lisp-unit2.

Please note that there is a cyclical dependency between these two
packages. This is the reason I have placed them both in a single commit.

* gnu/packages/lisp.scm (symbol-munger): New variable.
* gnu/packages/lisp.scm (lisp-unit2): New variable.
---
 gnu/packages/lisp.scm | 140 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 140 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 5c3ebb6b57..d21ed5e8cc 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5942,3 +5942,143 @@ doesn't support them.")
 
 (define-public ecl-cl-interpol
   (sbcl-package->ecl-package sbcl-cl-interpol))
+
+;; See https://github.com/AccelerationNet/symbol-munger/issues/4
+(define-public sbcl-symbol-munger-boot0
+  (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
+        (revision "1"))
+    (package
+      (name "sbcl-symbol-munger-boot0")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url
+            "https://github.com/AccelerationNet/symbol-munger.git")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-file "symbol-munger.asd"
+         #:asd-system-name "symbol-munger"))
+      (inputs
+       `(("sbcl-iterate" ,sbcl-iterate)
+         ("sbcl-alexandria" ,sbcl-alexandria)))
+      (native-inputs
+       `(("sbcl-lisp-unit" ,sbcl-lisp-unit)))
+      (synopsis
+       "A common lisp library to help convert english and lisp-symbols
+into each other and various formats.")
+      (description
+       "A common lisp library to help convert english and lisp-symbols
+into each other and various formats.")
+      (home-page "https://github.com/AccelerationNet/symbol-munger")
+      ;; The package declares a BSD license, but all of the license
+      ;; text is MIT. See:
+      ;; https://github.com/AccelerationNet/symbol-munger/issues/5
+      (license license:expat))))
+
+(define-public sbcl-symbol-munger
+  (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
+        (revision "1"))
+    (package
+      (name "sbcl-symbol-munger")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url
+            "https://github.com/AccelerationNet/symbol-munger.git")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-iterate" ,sbcl-iterate)
+         ("sbcl-alexandria" ,sbcl-alexandria)))
+      (native-inputs
+       `(("sbcl-lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
+      (synopsis
+       "A common lisp library to help convert english and lisp-symbols
+into each other and various formats.")
+      (description
+       "A common lisp library to help convert english and lisp-symbols
+into each other and various formats.")
+      (home-page "https://github.com/AccelerationNet/symbol-munger")
+      ;; The package declares a BSD license, but all of the license
+      ;; text is MIT. See:
+      ;; https://github.com/AccelerationNet/symbol-munger/issues/5
+      (license license:expat))))
+
+(define-public cl-symbol-munger
+  (sbcl-package->cl-source-package sbcl-symbol-munger))
+
+(define-public ecl-symbol-munger
+  (sbcl-package->ecl-package sbcl-symbol-munger))
+
+;; See https://github.com/AccelerationNet/symbol-munger/issues/4
+(define-public sbcl-lisp-unit2-boot0
+  (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
+        (revision "1"))
+    (package
+      (name "sbcl-lisp-unit2-boot0")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/lisp-unit2.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-file "lisp-unit2.asd"
+         #:asd-system-name "lisp-unit2"))
+      (inputs
+       `(("sbcl-alexandria" ,sbcl-alexandria)
+         ("sbcl-cl-interpol" ,sbcl-cl-interpol)
+         ("sbcl-iterate" ,sbcl-iterate)
+         ("sbcl-symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
+      (synopsis
+       "A Test Framework for Common Lisp in the style of JUnit,
+designed and implemented with simplicity of use in mind.")
+      (description
+       "lisp-unit2 is a Common Lisp library that supports unit
+testing. It is a new version of a library of the lisp-unit library
+written by Chris Riesbeck. There is a long history of testing packages
+in Lisp, usually called \"regression\" testers. More recent packages
+in Lisp and other languages have been inspired by JUnit for Java.
+Recently longtime users at Acceleration.net felt motivated to refactor
+significantly, attempting to make some broad improvements to the
+library while maintaining its benefits and workflow")
+      (home-page "https://github.com/AccelerationNet/lisp-unit2")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public sbcl-lisp-unit2
+  (package
+    (inherit sbcl-lisp-unit2-boot0)
+    (name "sbcl-lisp-unit2")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-interpol" ,sbcl-cl-interpol)
+       ("sbcl-iterate" ,sbcl-iterate)
+       ("sbcl-symbol-munger" ,sbcl-symbol-munger)))))
+
+(define-public cl-lisp-unit2
+  (sbcl-package->cl-source-package sbcl-lisp-unit2))
+
+(define-public ecl-lisp-unit2
+  (sbcl-package->ecl-package sbcl-lisp-unit2))
-- 
2.17.1

From efc28d78b85b73555267aa47f9e48ee61d2ba92f Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 16:20:13 -0500
Subject: [PATCH 13/15] gnu: Add cl-csv.

* gnu/packages/lisp.scm (cl-csv): New variable.
---
 gnu/packages/lisp.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d21ed5e8cc..2c459390c7 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6082,3 +6082,44 @@ library while maintaining its benefits and workflow")
 
 (define-public ecl-lisp-unit2
   (sbcl-package->ecl-package sbcl-lisp-unit2))
+
+(define-public sbcl-cl-csv
+  (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-csv")
+      (version (git-version "1.0.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/cl-csv.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
+       `(#:tests? #f))
+      (inputs
+       `(("sbcl-iterate" ,sbcl-iterate)
+         ("sbcl-alexandria" ,sbcl-alexandria)
+         ("sbcl-cl-interpol" ,sbcl-cl-interpol)))
+      (native-inputs
+       `(("sbcl-lisp-unit2" ,sbcl-lisp-unit2)))
+      (synopsis
+       "A common lisp library providing easy csv reading and
+writing.")
+      (description
+       "A common lisp library providing easy csv reading and
+writing.")
+      (home-page "https://github.com/AccelerationNet/cl-csv")
+      (license license:bsd-3))))
+
+(define-public cl-cl-csv
+  (sbcl-package->cl-source-package sbcl-cl-csv))
+
+(define-public ecl-cl-csv
+  (sbcl-package->ecl-package sbcl-cl-csv))
-- 
2.17.1

From ef88ae708663d60ce28d3d7d3272ebfaa7669968 Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 16:21:37 -0500
Subject: [PATCH 14/15] gnu: Add external-program.

* gnu/packages/lisp.scm (external-program): New variable.
---
 gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 2c459390c7..fa67417f90 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6123,3 +6123,41 @@ writing.")
 
 (define-public ecl-cl-csv
   (sbcl-package->ecl-package sbcl-cl-csv))
+
+(define-public sbcl-external-program
+  (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
+        (revision "1"))
+    (package
+      (name "sbcl-external-program")
+      (version (git-version "0.0.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sellout/external-program.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-trivial-features" ,sbcl-trivial-features)))
+      (native-inputs
+       `(("sbcl-fiveam" ,sbcl-fiveam)))
+      (synopsis
+       "A portable Common Lisp library for running external programs
+from within Lisp.")
+      (description
+       "EXTERNAL-PROGRAM enables running programs outside the Lisp
+process. It is an attempt to make the RUN-PROGRAM functionality in
+implementations like SBCL and CCL as portable as possible without
+sacrificing much in the way of power.")
+      (home-page "https://github.com/sellout/external-program")
+      (license license:llgpl))))
+
+(define-public cl-external-program
+  (sbcl-package->cl-source-package sbcl-external-program))
+
+(define-public ecl-external-program
+  (sbcl-package->ecl-package sbcl-external-program))
-- 
2.17.1

From e563a4232336ff8e777e946cd093122c356e51da Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <[email-masked]>
Date: Fri, 7 Jun 2019 17:24:08 -0500
Subject: [PATCH 15/15] gnu: Add cl-ana.

* gnu/packages/lisp.scm (cl-ana): New variable.
---
 gnu/packages/lisp.scm | 1146 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1146 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index fa67417f90..d8423907e3 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6161,3 +6161,1149 @@ sacrificing much in the way of power.")
 
 (define-public ecl-external-program
   (sbcl-package->ecl-package sbcl-external-program))
+
+(define-public sbcl-cl-ana-boot0
+  (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
+        (revision "1"))
+    (package
+     (name "sbcl-cl-ana-boot0")
+     (version (git-version "0.0.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ghollisjr/cl-ana.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
+     (build-system asdf-build-system/sbcl)
+     (synopsis
+      "Free (GPL) Common Lisp data analysis library with emphasis on
+modularity and conceptual clarity.")
+     (description
+      "cl-ana is a free (GPL) data analysis library in Common Lisp
+providing tabular & binned data analysis along with nonlinear least
+squares fitting & visualization.")
+     (home-page "https://github.com/ghollisjr/cl-ana")
+     (license license:gpl3))))
+
+(define-public sbcl-cl-ana.pathname-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.pathname-utils")
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
+
+(define-public cl-cl-ana.pathname-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
+
+(define-public ecl-cl-ana.pathname-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
+
+(define-public sbcl-cl-ana.package-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.package-utils")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
+
+(define-public cl-cl-ana.package-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
+
+(define-public ecl-cl-ana.package-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
+
+(define-public sbcl-cl-ana.string-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.string-utils")
+    (inputs
+     `(("sbcl-split-sequence" ,sbcl-split-sequence)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
+
+(define-public cl-cl-ana.string-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
+
+(define-public ecl-cl-ana.string-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
+
+(define-public sbcl-cl-ana.functional-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.functional-utils")
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
+
+(define-public cl-cl-ana.functional-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
+
+(define-public ecl-cl-ana.functional-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
+
+(define-public sbcl-cl-ana.list-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.list-utils")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
+
+(define-public cl-cl-ana.list-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
+
+(define-public ecl-cl-ana.list-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
+
+(define-public sbcl-cl-ana.generic-math
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.generic-math")
+    (inputs
+     `(("sbcl-cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
+       ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
+
+(define-public cl-cl-ana.generic-math
+  (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
+
+(define-public ecl-cl-ana.generic-math
+  (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
+
+(define-public sbcl-cl-ana.math-functions
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.math-functions")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-gsll" ,sbcl-gsll)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
+       ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
+
+(define-public cl-cl-ana.math-functions
+  (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
+
+(define-public ecl-cl-ana.math-functions
+  (sbcl-package->ecl-package sbcl-cl-ana.math-functions))
+
+(define-public sbcl-cl-ana.calculus
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.calculus")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
+       ((#:asd-system-name _ #f) "cl-ana.calculus")))))
+
+(define-public cl-cl-ana.calculus
+  (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
+
+(define-public ecl-cl-ana.calculus
+  (sbcl-package->ecl-package sbcl-cl-ana.calculus))
+
+(define-public sbcl-cl-ana.symbol-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.symbol-utils")
+    (inputs
+     `(("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
+
+(define-public cl-cl-ana.symbol-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
+
+(define-public ecl-cl-ana.symbol-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
+
+(define-public sbcl-cl-ana.macro-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.macro-utils")
+    (inputs
+     `(("sbcl-split-sequence" ,sbcl-split-sequence)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
+
+(define-public cl-cl-ana.macro-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
+
+(define-public ecl-cl-ana.macro-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
+
+(define-public sbcl-cl-ana.binary-tree
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.binary-tree")
+    (inputs
+     `(("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
+       ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
+
+(define-public cl-cl-ana.binary-tree
+  (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
+
+(define-public ecl-cl-ana.binary-tree
+  (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
+
+(define-public sbcl-cl-ana.tensor
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.tensor")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
+       ((#:asd-system-name _ #f) "cl-ana.tensor")))))
+
+(define-public cl-cl-ana.tensor
+  (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
+
+(define-public ecl-cl-ana.tensor
+  (sbcl-package->ecl-package sbcl-cl-ana.tensor))
+
+(define-public sbcl-cl-ana.error-propogation
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.error-propogation")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
+       ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
+
+(define-public cl-cl-ana.error-propogation
+  (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
+
+(define-public ecl-cl-ana.error-propogation
+  (sbcl-package->ecl-package sbcl-cl-ana.error-propogation))
+
+(define-public sbcl-cl-ana.quantity
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.quantity")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
+       ((#:asd-system-name _ #f) "cl-ana.quantity")))))
+
+(define-public cl-cl-ana.quantity
+  (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
+
+(define-public ecl-cl-ana.quantity
+  (sbcl-package->ecl-package sbcl-cl-ana.quantity))
+
+(define-public sbcl-cl-ana.table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.table")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "table/cl-ana.table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.table")))))
+
+(define-public cl-cl-ana.table
+  (sbcl-package->cl-source-package sbcl-cl-ana.table))
+
+(define-public ecl-cl-ana.table
+  (sbcl-package->ecl-package sbcl-cl-ana.table))
+
+(define-public sbcl-cl-ana.table-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.table-utils")
+    (inputs
+     `(("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
+
+(define-public cl-cl-ana.table-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
+
+(define-public ecl-cl-ana.table-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
+
+(define-public sbcl-cl-ana.hdf-cffi
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.hdf-cffi")
+    (inputs
+     `(("sbcl-cffi" ,sbcl-cffi)
+       ("hdf5" ,hdf5-parallel-openmpi)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
+       ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "hdf-cffi/hdf-cffi.lisp"
+                 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
+                  (string-append
+                   (assoc-ref inputs "hdf5")
+                   "/lib/libhdf5.so")))))))))))
+
+(define-public cl-cl-ana.hdf-cffi
+  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
+
+(define-public ecl-cl-ana.hdf-cffi
+  (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
+
+(define-public sbcl-cl-ana.int-char
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.int-char")
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
+       ((#:asd-system-name _ #f) "cl-ana.int-char")))))
+
+(define-public cl-cl-ana.int-char
+  (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
+
+(define-public ecl-cl-ana.int-char
+  (sbcl-package->ecl-package sbcl-cl-ana.int-char))
+
+(define-public sbcl-cl-ana.memoization
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.memoization")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
+       ((#:asd-system-name _ #f) "cl-ana.memoization")))))
+
+(define-public cl-cl-ana.memoization
+  (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
+
+(define-public ecl-cl-ana.memoization
+  (sbcl-package->ecl-package sbcl-cl-ana.memoization))
+
+(define-public sbcl-cl-ana.typespec
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.typespec")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cffi" ,sbcl-cffi)
+       ("sbcl-cl-ana.int-char" ,sbcl-cl-ana.int-char)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
+       ((#:asd-system-name _ #f) "cl-ana.typespec")))))
+
+(define-public cl-cl-ana.typespec
+  (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
+
+(define-public ecl-cl-ana.typespec
+  (sbcl-package->ecl-package sbcl-cl-ana.typespec))
+
+(define-public sbcl-cl-ana.hdf-typespec
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.hdf-typespec")
+    (inputs
+     `(("sbcl-cffi" ,sbcl-cffi)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("sbcl-cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
+       ("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
+       ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
+
+(define-public cl-cl-ana.hdf-typespec
+  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
+
+(define-public ecl-cl-ana.hdf-typespec
+  (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
+
+(define-public sbcl-cl-ana.hdf-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.hdf-utils")
+    (inputs
+     `(("sbcl-cffi" ,sbcl-cffi)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)
+       ("sbcl-cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
+
+(define-public cl-cl-ana.hdf-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
+
+(define-public ecl-cl-ana.hdf-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
+
+(define-public sbcl-cl-ana.typed-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.typed-table")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
+
+(define-public cl-cl-ana.typed-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
+
+(define-public ecl-cl-ana.typed-table
+  (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
+
+(define-public sbcl-cl-ana.hdf-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.hdf-table")
+    (inputs
+     `(("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
+       ("sbcl-cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
+       ("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)
+       ("sbcl-cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
+       ("sbcl-cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
+       ("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
+
+(define-public cl-cl-ana.hdf-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
+
+(define-public ecl-cl-ana.hdf-table
+  (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
+
+(define-public sbcl-cl-ana.gsl-cffi
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.gsl-cffi")
+    (inputs
+     `(("sbcl-cffi" ,sbcl-cffi)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
+       ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")))))
+
+(define-public cl-cl-ana.gsl-cffi
+  (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
+
+(define-public ecl-cl-ana.gsl-cffi
+  (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
+
+(define-public sbcl-cl-ana.ntuple-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.ntuple-table")
+    (inputs
+     `(("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cffi" ,sbcl-cffi)
+       ("sbcl-gsll" ,sbcl-gsll)
+       ("sbcl-cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
+       ("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)
+       ("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
+
+(define-public cl-cl-ana.ntuple-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
+
+(define-public ecl-cl-ana.ntuple-table
+  (sbcl-package->ecl-package sbcl-cl-ana.ntuple-table))
+
+(define-public sbcl-cl-ana.csv-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.csv-table")
+    (inputs
+     `(("sbcl-antik" ,sbcl-antik)
+       ("sbcl-iterate" ,sbcl-iterate)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-csv" ,sbcl-cl-csv)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
+
+(define-public cl-cl-ana.csv-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
+
+(define-public ecl-cl-ana.csv-table
+  (sbcl-package->ecl-package sbcl-cl-ana.csv-table))
+
+(define-public sbcl-cl-ana.reusable-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.reusable-table")
+    (inputs
+     `(("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
+
+(define-public cl-cl-ana.reusable-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
+
+(define-public ecl-cl-ana.reusable-table
+  (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
+
+(define-public sbcl-cl-ana.linear-algebra
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.linear-algebra")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("sbcl-gsll" ,sbcl-gsll)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
+       ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
+
+(define-public cl-cl-ana.linear-algebra
+  (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
+
+(define-public ecl-cl-ana.linear-algebra
+  (sbcl-package->ecl-package sbcl-cl-ana.linear-algebra))
+
+(define-public sbcl-cl-ana.lorentz
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.lorentz")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-iterate" ,sbcl-iterate)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
+       ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
+
+(define-public cl-cl-ana.lorentz
+  (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
+
+(define-public ecl-cl-ana.lorentz
+  (sbcl-package->ecl-package sbcl-cl-ana.lorentz))
+
+(define-public sbcl-cl-ana.clos-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.clos-utils")
+    (inputs
+     `(("sbcl-closer-mop" ,sbcl-closer-mop)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
+
+(define-public cl-cl-ana.clos-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
+
+(define-public ecl-cl-ana.clos-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
+
+(define-public sbcl-cl-ana.hash-table-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.hash-table-utils")
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
+
+(define-public cl-cl-ana.hash-table-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
+
+(define-public ecl-cl-ana.hash-table-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
+
+(define-public sbcl-cl-ana.map
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.map")
+    (inputs
+     `(("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "map/cl-ana.map.asd")
+       ((#:asd-system-name _ #f) "cl-ana.map")))))
+
+(define-public cl-cl-ana.map
+  (sbcl-package->cl-source-package sbcl-cl-ana.map))
+
+(define-public ecl-cl-ana.map
+  (sbcl-package->ecl-package sbcl-cl-ana.map))
+
+(define-public sbcl-cl-ana.fitting
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.fitting")
+    (inputs
+     `(("sbcl-gsll" ,sbcl-gsll)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
+       ((#:asd-system-name _ #f) "cl-ana.fitting")))))
+
+(define-public cl-cl-ana.fitting
+  (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
+
+(define-public ecl-cl-ana.fitting
+  (sbcl-package->ecl-package sbcl-cl-ana.fitting))
+
+(define-public sbcl-cl-ana.histogram
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.histogram")
+    (inputs
+     `(("sbcl-iterate" ,sbcl-iterate)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-cl-ana.fitting" ,sbcl-cl-ana.fitting)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
+       ((#:asd-system-name _ #f) "cl-ana.histogram")))))
+
+(define-public cl-cl-ana.histogram
+  (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
+
+(define-public ecl-cl-ana.histogram
+  (sbcl-package->ecl-package sbcl-cl-ana.histogram))
+
+(define-public sbcl-cl-ana.file-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.file-utils")
+    (inputs
+     `(("sbcl-external-program" ,sbcl-external-program)
+       ("sbcl-split-sequence" ,sbcl-split-sequence)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
+
+(define-public cl-cl-ana.file-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
+
+(define-public ecl-cl-ana.file-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
+
+(define-public sbcl-cl-ana.statistics
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.statistics")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
+       ((#:asd-system-name _ #f) "cl-ana.statistics")))))
+
+(define-public cl-cl-ana.statistics
+  (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
+
+(define-public ecl-cl-ana.statistics
+  (sbcl-package->ecl-package sbcl-cl-ana.statistics))
+
+(define-public sbcl-cl-ana.gnuplot-interface
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.gnuplot-interface")
+    (inputs
+     `(("sbcl-external-program" ,sbcl-external-program)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
+       ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
+
+(define-public cl-cl-ana.gnuplot-interface
+  (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
+
+(define-public ecl-cl-ana.gnuplot-interface
+  (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
+
+(define-public sbcl-cl-ana.plotting
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.plotting")
+    (inputs
+     `(("sbcl-cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("sbcl-cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-external-program" ,sbcl-external-program)
+       ("sbcl-split-sequence" ,sbcl-split-sequence)
+       ("sbcl-alexandria" ,sbcl-alexandria)
+       ;; For sb-posix
+       ("sbcl" ,sbcl)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
+       ((#:asd-system-name _ #f) "cl-ana.plotting")))))
+
+(define-public cl-cl-ana.plotting
+  (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
+
+(define-public ecl-cl-ana.plotting
+  (sbcl-package->ecl-package sbcl-cl-ana.plotting))
+
+(define-public sbcl-cl-ana.table-viewing
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.table-viewing")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
+       ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
+
+(define-public cl-cl-ana.table-viewing
+  (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
+
+(define-public ecl-cl-ana.table-viewing
+  (sbcl-package->ecl-package sbcl-cl-ana.table-viewing))
+
+(define-public sbcl-cl-ana.serialization
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.serialization")
+    (inputs
+     `(("sbcl-cl-ana.typespec" ,sbcl-cl-ana.typespec)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.int-char" ,sbcl-cl-ana.int-char)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("sbcl-cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
+       ((#:asd-system-name _ #f) "cl-ana.serialization")))))
+
+(define-public cl-cl-ana.serialization
+  (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
+
+(define-public ecl-cl-ana.serialization
+  (sbcl-package->ecl-package sbcl-cl-ana.serialization))
+
+(define-public sbcl-cl-ana.makeres
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("sbcl-cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("sbcl-external-program" ,sbcl-external-program)
+       ("sbcl-cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("sbcl-cl-ana.serialization" ,sbcl-cl-ana.serialization)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)))
+    (native-inputs
+     `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres")))))
+
+(define-public cl-cl-ana.makeres
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
+
+(define-public ecl-cl-ana.makeres
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres))
+
+(define-public sbcl-cl-ana.makeres-macro
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-macro")
+    (inputs
+     `(("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
+
+(define-public cl-cl-ana.makeres-macro
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
+
+(define-public ecl-cl-ana.makeres-macro
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres-macro))
+
+(define-public sbcl-cl-ana.makeres-block
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-block")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
+
+(define-public cl-cl-ana.makeres-block
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
+
+(define-public ecl-cl-ana.makeres-block
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres-block))
+
+(define-public sbcl-cl-ana.makeres-progress
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-progress")
+    (inputs
+     `(("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-alexandria" ,sbcl-alexandria)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
+
+(define-public cl-cl-ana.makeres-progress
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
+
+(define-public ecl-cl-ana.makeres-progress
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres-progress))
+
+(define-public sbcl-cl-ana.makeres-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-table")
+    (inputs
+     `(("sbcl-cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("sbcl-cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("sbcl-cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
+       ("sbcl-cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
+       ("sbcl-cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
+       ("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
+    (native-inputs
+     `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
+
+(define-public cl-cl-ana.makeres-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
+
+(define-public ecl-cl-ana.makeres-table
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres-table))
+
+(define-public sbcl-cl-ana.makeres-graphviz
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-graphviz")
+    (inputs
+     `(("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-external-program" ,sbcl-external-program)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
+
+(define-public cl-cl-ana.makeres-graphviz
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
+
+(define-public ecl-cl-ana.makeres-graphviz
+  (sbcl-package->ecl-package sbcl-cl-ana.makeres-graphviz))
+
+(define-public sbcl-cl-ana.makeres-branch
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-branch")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
+
+(define-public cl-cl-ana.makres-branch
+  (sbcl-package->cl-source-package sbcl-cl-ana.makres-branch))
+
+(define-public ecl-cl-ana.makres-branch
+  (sbcl-package->ecl-package sbcl-cl-ana.makres-branch))
+
+(define-public sbcl-cl-ana.makeres-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-utils")
+    (inputs
+     `(("sbcl-alexandria" ,sbcl-alexandria)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-cl-ana.fitting" ,sbcl-cl-ana.fitting)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("sbcl-cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)))
+    (native-inputs
+     `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
+
+(define-public cl-cl-ana.makres-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.makres-utils))
+
+(define-public ecl-cl-ana.makres-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.makres-utils))
+
+(define-public sbcl-cl-ana.statistical-learning
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.statistical-learning")
+    (inputs
+     `(("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("sbcl-cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.statistics" ,sbcl-cl-ana.statistics)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("sbcl-cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)))
+    (native-inputs
+     `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "")
+        "statistical-learning/cl-ana.statistical-learning.asd")
+       ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
+
+(define-public cl-cl-ana.statistical-learning
+  (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
+
+(define-public ecl-cl-ana.statistical-learning
+  (sbcl-package->ecl-package sbcl-cl-ana.statistical-learning))
+
+(define-public sbcl-cl-ana
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana")
+    (inputs
+     `(("sbcl-cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("sbcl-cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
+       ("sbcl-cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("sbcl-cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("sbcl-cl-ana.calculus" ,sbcl-cl-ana.calculus)
+       ("sbcl-cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
+       ("sbcl-cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("sbcl-cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("sbcl-cl-ana.quantity" ,sbcl-cl-ana.quantity)
+       ("sbcl-cl-ana.table" ,sbcl-cl-ana.table)
+       ("sbcl-cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
+       ("sbcl-cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
+       ("sbcl-cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
+       ("sbcl-cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
+       ("sbcl-cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("sbcl-cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
+       ("sbcl-cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
+       ("sbcl-cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("sbcl-cl-ana.fitting" ,sbcl-cl-ana.fitting)
+       ("sbcl-cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("sbcl-cl-ana.statistics" ,sbcl-cl-ana.statistics)
+       ("sbcl-cl-ana.statistical-learning"
+        ,sbcl-cl-ana.statistical-learning)
+       ("sbcl-cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("sbcl-cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
+       ("sbcl-cl-ana.int-char" ,sbcl-cl-ana.int-char)
+       ("sbcl-cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
+       ("sbcl-cl-ana.serialization" ,sbcl-cl-ana.serialization)
+       ("sbcl-cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("sbcl-cl-ana.map" ,sbcl-cl-ana.map)
+       ("sbcl-cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("sbcl-cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
+       ("sbcl-cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
+       ("sbcl-cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
+       ("sbcl-cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
+       ("sbcl-cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
+       ("sbcl-cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
+       ("sbcl-cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
+       ("libffi" ,libffi)))
+    (native-inputs
+     `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "cl-ana.asd")
+       ((#:asd-system-name _ #f) "cl-ana")))))
+
+(define-public cl-cl-ana
+  (sbcl-package->cl-source-package sbcl-cl-ana))
+
+(define-public ecl-cl-ana
+  (sbcl-package->ecl-package sbcl-cl-ana))
-- 
2.17.1

-- 
Katherine