Subject: bug#36545: closed (Re: [bug#36545] [PATCH] Add Hoogle)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 03 Sep 2019 03:19:02 +0000

Your bug report

#36545: [PATCH] Add Hoogle

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36545: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36545
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#36545] [PATCH] Add Hoogle
From: Timothy Sample <[email-masked]>
To: John Soo <[email-masked]>
Cc: [email-masked], Robert Vollmert <[email-masked]>
Date: Mon, 02 Sep 2019 23:18:20 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi John,

I finally got around to processing the “wip-haskell-updates” branch
(thanks for your patience).  This patch series has now landed in master
as commits a52f4c5740–6ec2450f1e.

Thanks for the packages!

(And thanks to Robert too, for moving them into “haskell-xyz”.)

-- Tim

Subject: [PATCH] Add Hoogle
From: John Soo <[email-masked]>
To: [email-masked]
Date: Mon, 8 Jul 2019 06:10:43 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix,

Hoogle is a search tool that is invaluable when writing Haskell.  I have
linted, formatted, and built --rounds=2 all the following.

Thank you,

John
From 6bbf429770499656be09185e3c1ee276f3f36152 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:23:35 -0700
Subject: [PATCH 01/13] gnu: Add ghc-mtl.

---
 gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d3ff27412f..6e62c2dd90 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2733,6 +2733,29 @@ the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
 Hashing\" by Claessen, Pałka for details and the rationale of the design.")
     (license license:bsd-3)))
 
+(define-public ghc-mtl
+  (package
+   (name "ghc-mtl")
+   (version "2.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri
+      (string-append "https://hackage.haskell.org/package/mtl/mtl-"
+                     version ".tar.gz"))
+     (sha256
+      (base32 "1xmy5741h8cyy0d91ahvqdz2hykkk20l8br7lg1rccnkis5g80w8"))))
+   (build-system haskell-build-system)
+   (home-page "https://github.com/haskell/mtl")
+   (synopsis "Monad classes, using functional dependencies")
+   (description
+    "Monad classes using functional dependencies, with instances for various
+monad transformers, inspired by the paper \"Functional Programming with
+Overloading and Higher-Order Polymorphism\", by Mark P Jones, in \"Advanced
+School of Functional Programming\", 1995
+http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.")
+   (license license:bsd-3)))
+
 (define-public ghc-transformers-base
   (package
     (name "ghc-transformers-base")
-- 
2.22.0

From b006e86bd78927c034856d9e6401c15f47e251f5 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:30:41 -0700
Subject: [PATCH 03/13] gnu: Add ghc-non-negative.

---
 gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 0096ed76c0..d5ca32027a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2784,6 +2784,35 @@ transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3
 compatibility to run on old versions of the platform.")
     (license license:bsd-3)))
 
+(define-public ghc-non-negative
+  (package
+    (name "ghc-non-negative")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/non-negative/non-negative-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0f01q916dzkl1i0v15qrw9cviycki5g3fgi6x8gs45iwbzssq52n"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-utility-ht" ,ghc-utility-ht)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
+    (arguments `(#:tests? #f))
+    (home-page "https://hackage.haskell.org/package/non-negative")
+    (synopsis "Non-negative numbers")
+    (description
+     "Provides a class for non-negative numbers, a wrapper which can turn any
+ordered numeric type into a member of that class, and a lazy number type for
+non-negative numbers (a generalization of Peano numbers).  This library is used
+by the event-list package.")
+    (license license:gpl3+)))
+
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-- 
2.22.0

From 05fb6e8334d5819fad1ae532a2190b3bdaeebad7 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:32:28 -0700
Subject: [PATCH 04/13] gnu: Add ghc-timeit.

---
 gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d5ca32027a..7126d7a6de 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2813,6 +2813,28 @@ non-negative numbers (a generalization of Peano numbers).  This library is used
 by the event-list package.")
     (license license:gpl3+)))
 
+(define-public ghc-timeit
+  (package
+    (name "ghc-timeit")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/timeit/timeit-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "1sliqpvl501rlcj6s0lhmsf5ym24j4h881wzc1f1wdyvg3jz8kd1"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/merijn/timeit")
+    (synopsis "Time monadic computations with an IO base")
+    (description "A simple wrapper to show the used CPU time of monadic
+computation with an IO base.")
+    (license license:bsd-3)))
+
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-- 
2.22.0

From e9f914e9af030ca65fb2cb1c21892307b1dc0d2e Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:27:42 -0700
Subject: [PATCH 02/13] gnu: Add ghc-unsafe.

---
 gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 6e62c2dd90..0096ed76c0 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2857,6 +2857,41 @@ package.  This package re-exports the unix package when available.  When it
 isn't available, portable implementations are used.")
     (license license:bsd-3)))
 
+(define-public ghc-unsafe
+  (package
+    (name "ghc-unsafe")
+    (version "0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/unsafe/unsafe-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0hc6xr1i3hkz25gdgfx1jqgpsc9mwa05bkfynp0mcfdlyz6782nz"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f))
+    (home-page "https://hackage.haskell.org/package/unsafe")
+    (synopsis "Unified interface to unsafe functions")
+    (description
+     "SafeHaskell introduced the notion of safe and unsafe modules.  In order to
+make as many as possible modules \\\"safe\\\", the well-known unsafe functions
+were moved to distinguished modules.  This makes it hard to write packages that
+work with both old and new versions of GHC.  This package provides a single
+module System.Unsafe that exports the unsafe functions from the base package.
+It provides them in a style ready for qualification, that is, you should import
+them by
+
+import qualified System.Unsafe as Unsafe
+
+The package also contains a script called rename-unsafe.sh.  It replaces all
+occurrences of the original identifiers with the qualified identifiers from this
+package.  You still have to adapt the import commands.  It uses the
+darcs-replace-rec script from the darcs-scripts package.")
+    (license license:bsd-3)))
+
 (define-public ghc-indents
   (package
     (name "ghc-indents")
-- 
2.22.0

From 42325a8183404c5a497b8f1d81c9db3c17b3d8b1 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:35:45 -0700
Subject: [PATCH 05/13] gnu: Add ghc-storablevector.

---
 gnu/packages/haskell.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 7126d7a6de..bb3c55070b 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2835,6 +2835,44 @@ by the event-list package.")
 computation with an IO base.")
     (license license:bsd-3)))
 
+(define-public ghc-storablevector
+  (package
+    (name "ghc-storablevector")
+    (version "0.2.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/storablevector/storablevector-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-non-negative" ,ghc-non-negative)
+       ("ghc-utility-ht" ,ghc-utility-ht)
+       ("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-unsafe" ,ghc-unsafe)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-syb" ,ghc-syb)))
+    (arguments `(#:tests? #f))
+    (home-page "https://www.haskell.org/haskellwiki/Storable_Vector")
+    (synopsis "Fast, packed, strict storable arrays with a list interface")
+    (description
+     "Fast, packed, strict storable arrays with a list interface, a chunky
+lazy list interface with variable chunk size and an interface for write
+access via the ST monad.  This is much like bytestring and binary but can be
+used for every @code{Foreign.Storable.Storable} type.  See also package with a
+similar intention at http://hackage.haskell.org/package/vector.
+
+We do not provide advanced fusion optimization, since especially for lazy
+vectors this would either be incorrect or not applicable.  However we provide
+fusion with lazy lists in the package
+http://hackage.haskell.org/package/storablevector-streamfusion.")
+    (license license:bsd-3)))
+
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-- 
2.22.0

From 8150d6f7c69a943a47a6d45fadfb2cbe085192e9 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:36:43 -0700
Subject: [PATCH 06/13] gnu: Add ghc-fmlist.

---
 gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index bb3c55070b..fced27227a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2835,6 +2835,31 @@ by the event-list package.")
 computation with an IO base.")
     (license license:bsd-3)))
 
+(define-public ghc-fmlist
+  (package
+    (name "ghc-fmlist")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/fmlist/fmlist-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "02868865hqm189h5wjd916abvqwkhbrx5b0119s1dwp70ifvbi4g"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/sjoerdvisscher/fmlist")
+    (synopsis "FoldMap lists")
+    (description
+     "FoldMap lists are lists represented by their foldMap function.  FoldMap
+lists have O(1) cons, snoc and append, just like DLists, but other operations
+might have favorable performance characteristics as well.  These wild claims
+are still completely unverified though.")
+    (license license:bsd-3)))
+
 (define-public ghc-storablevector
   (package
     (name "ghc-storablevector")
-- 
2.22.0

From c67646174d748596407d74661204b8820f4327e4 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:40:12 -0700
Subject: [PATCH 07/13] gnu: Add ghc-storable-record.

---
 gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index fced27227a..fa3063c684 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2860,6 +2860,39 @@ might have favorable performance characteristics as well.  These wild claims
 are still completely unverified though.")
     (license license:bsd-3)))
 
+(define-public ghc-storable-record
+  (package
+    (name "ghc-storable-record")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/storable-record/storable-record-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0hjs1km0fc9ch0i1rbycxia5w3939hk4p4md73ikgg4aipqb5zyf"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-semigroups" ,ghc-semigroups)
+       ("ghc-utility-ht" ,ghc-utility-ht)
+       ("ghc-storablevector" ,ghc-storablevector)
+       ("ghc-timeit" ,ghc-timeit)))
+    (arguments `(#:tests? #f))
+    (home-page "https://hackage.haskell.org/package/storable-record")
+    (synopsis "Elegant definition of Storable instances for records")
+    (description
+     "With this package you can build a Storable instance of a record type
+from Storable instances of its elements in an elegant way.  It does not do any
+magic, just a bit arithmetic to compute the right offsets, that would be
+otherwise done manually or by a preprocessor like C2HS.  I cannot promise that
+the generated memory layout is compatible with that of a corresponding C
+struct.  However, the module generates the smallest layout that is possible
+with respect to the alignment of the record elements.")
+    (license license:bsd-3)))
+
 (define-public ghc-storablevector
   (package
     (name "ghc-storablevector")
-- 
2.22.0

From b618422a83b120679357029c7a1428163a9c42e4 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:52:53 -0700
Subject: [PATCH 08/13] gnu: Add ghc-listlike.

---
 gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index fa3063c684..dfd5981f39 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2931,6 +2931,42 @@ fusion with lazy lists in the package
 http://hackage.haskell.org/package/storablevector-streamfusion.")
     (license license:bsd-3)))
 
+(define-public ghc-listlike
+  (package
+    (name "ghc-listlike")
+    (version "4.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/ListLike/ListLike-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0m65x8yaq7q50gznln8mga2wrc8cvjx6gw9rim8s7xqcrx6y5zjh"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-vector" ,ghc-vector)
+       ("ghc-dlist" ,ghc-dlist)
+       ("ghc-fmlist" ,ghc-fmlist)
+       ("ghc-utf8-string" ,ghc-utf8-string)))
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/JohnLato/listlike")
+    (synopsis "Generic support for list-like structures")
+    (description
+     "Generic support for list-like structures in Haskell.
+
+The ListLike module provides a common interface to the various Haskell types
+that are list-like.  Predefined interfaces include standard Haskell lists,
+Arrays, ByteStrings, and lazy ByteStrings.  Custom types can easily be made
+ListLike instances as well.
+
+ListLike also provides for String-like types, such as String and ByteString,
+for types that support input and output, and for types that can handle
+infinite lists.")
+    (license license:bsd-3)))
+
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-- 
2.22.0

From 8cfc73828fb61d66c225155f3e76ccc634801f95 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:56:20 -0700
Subject: [PATCH 09/13] gnu: Add ghc-storable-tuple.

---
 gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index dfd5981f39..9c8d0c3d12 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4516,6 +4516,35 @@ vector types are supported.  Specific instances are provided for unboxed,
 boxed and storable vectors.")
     (license license:bsd-3)))
 
+(define-public ghc-storable-tuple
+  (package
+    (name "ghc-storable-tuple")
+    (version "0.0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/storable-tuple/storable-tuple-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0dfzhxgkn1l6ls7zh6iifhyvhm8l47n40z0ar23c6ibsa94w1ynw"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-storable-record" ,ghc-storable-record)
+       ("ghc-utility-ht" ,ghc-utility-ht)
+       ("ghc-base-orphans" ,ghc-base-orphans)))
+    (arguments `(#:tests? #f))
+    (home-page "https://hackage.haskell.org/package/storable-tuple")
+    (synopsis "Storable instance for pairs and triples")
+    (description
+     "Provides a Storable instance for pair and triple which should be binary
+compatible with C99 and C++.  The only purpose of this package is to provide a
+standard location for this instance so that other packages needing this
+instance can play nicely together.")
+    (license license:bsd-3)))
+
 (define-public ghc-bloomfilter
   (package
     (name "ghc-bloomfilter")
-- 
2.22.0

From 3ad345d8e655f7554eab8173832d5d9086725d6d Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 17:59:28 -0700
Subject: [PATCH 10/13] gnu: Add ghc-process-extras.

---
 gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9c8d0c3d12..bbcf63f732 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4516,6 +4516,36 @@ vector types are supported.  Specific instances are provided for unboxed,
 boxed and storable vectors.")
     (license license:bsd-3)))
 
+(define-public ghc-process-extras
+  (package
+    (name "ghc-process-extras")
+    (version "0.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/process-extras/process-extras-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0klqgr37f1z2z6i0a9b0giapmq0p35l5k9kz1p7f0k1597w7agi9"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-data-default" ,ghc-data-default)
+       ("ghc-listlike" ,ghc-listlike)
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-generic-deriving" ,ghc-generic-deriving)))
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/seereason/process-extras")
+    (synopsis "Process extras")
+    (description
+     "Extends http://hackage.haskell.org/package/process.  Read process
+input and output as ByteStrings or Text, or write your own ProcessOutput
+instance.  Lazy process input and output.  ProcessMaker class for more
+flexibility in the process creation API.")
+    (license license:expat)))
+
 (define-public ghc-storable-tuple
   (package
     (name "ghc-storable-tuple")
-- 
2.22.0

From 9eed9d4c3397ac54a02b28bf4feafcce39bed87b Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 18:00:52 -0700
Subject: [PATCH 11/13] gnu: Add ghc-js-jquery.

---
 gnu/packages/haskell-web.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 6b7103562f..57bcc4b027 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1347,3 +1347,29 @@ derivations of regular expressions.")
      "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
 introduces a more general approach for processing XML with Haskell.")
     (license license:expat)))
+
+(define-public ghc-js-jquery
+  (package
+    (name "ghc-js-jquery")
+    (version "3.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/js-jquery/js-jquery-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/ndmitchell/js-jquery#readme")
+    (synopsis "Obtain minified jQuery code")
+    (description
+     "This package bundles the minified jQuery code (http://jquery.com/)
+into a Haskell package, so it can be depended upon by Cabal packages.  The
+first three components of the version number match the upstream jQuery version.
+The package is designed to meet the redistribution requirements of downstream
+users (e.g. Debian).")
+    (license license:expat)))
-- 
2.22.0

From bb3d813501cc61b399dc904bec8334157287ed5e Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 18:03:26 -0700
Subject: [PATCH 13/13] gnu: Add hoogle.

---
 gnu/packages/haskell-apps.scm | 53 +++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index d675863090..038bfd7600 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -398,3 +398,56 @@ play inspired from classics Lemmings and The Incredible Machine.  The project
 proved to be an excellent learning experience for the programmers.  Everything
 is programmed in Haskell.")
     (license license:bsd-3)))
+
+(define-public hoogle
+  (package
+    (name "hoogle")
+    (version "5.0.17.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/hoogle/hoogle-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "174gp41v0krzj37m75pnr3aawyhkbk2wq4q6zk2z3zh0avvvmgk6"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-network-uri" ,ghc-network-uri)
+       ("ghc-network" ,ghc-network)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-aeson" ,ghc-aeson)
+       ("ghc-cmdargs" ,ghc-cmdargs)
+       ("ghc-conduit" ,ghc-conduit)
+       ("ghc-conduit-extra" ,ghc-conduit-extra)
+       ("ghc-connection" ,ghc-connection)
+       ("ghc-extra" ,ghc-extra)
+       ("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+       ("ghc-http-conduit" ,ghc-http-conduit)
+       ("ghc-http-types" ,ghc-http-types)
+       ("ghc-js-flot" ,ghc-js-flot)
+       ("ghc-js-jquery" ,ghc-js-jquery)
+       ("ghc-mmap" ,ghc-mmap)
+       ("ghc-process-extras" ,ghc-process-extras)
+       ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-storable-tuple" ,ghc-storable-tuple)
+       ("ghc-tar" ,ghc-tar)
+       ("ghc-uniplate" ,ghc-uniplate)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-wai" ,ghc-wai)
+       ("ghc-wai-logger" ,ghc-wai-logger)
+       ("ghc-warp" ,ghc-warp)
+       ("ghc-warp-tls" ,ghc-warp-tls)
+       ("ghc-zlib" ,ghc-zlib)))
+    (arguments `(#:tests? #f))
+    (home-page "https://hoogle.haskell.org/")
+    (synopsis "Haskell API Search")
+    (description
+     "Hoogle is a Haskell API search engine, which allows you to search many
+standard Haskell libraries by either function name, or by approximate type
+signature.")
+    (license license:bsd-3)))
-- 
2.22.0

From 178b2deab3c7c755d37d46a2711e8e130c2c22ce Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Sun, 7 Jul 2019 18:01:54 -0700
Subject: [PATCH 12/13] gnu: Add ghc-js-flot.

---
 gnu/packages/haskell-web.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 57bcc4b027..3655a5a7d9 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1373,3 +1373,29 @@ first three components of the version number match the upstream jQuery version.
 The package is designed to meet the redistribution requirements of downstream
 users (e.g. Debian).")
     (license license:expat)))
+
+(define-public ghc-js-flot
+  (package
+    (name "ghc-js-flot")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://hackage.haskell.org/package/js-flot/js-flot-"
+         version ".tar.gz"))
+       (sha256
+        (base32
+         "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/ndmitchell/js-flot#readme")
+    (synopsis "Obtain minified flot code")
+    (description
+     "This package bundles the minified Flot code (http://www.flotcharts.org/)
+(a jQuery plotting library) into a Haskell package, so it can be depended upon
+by Cabal packages.  The first three components of the version number match the
+upstream flot version.  The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+    (license license:expat)))
-- 
2.22.0