diff --git a/pkgs/development/libraries/haskell/dstring/default.nix b/pkgs/development/libraries/haskell/dstring/default.nix
new file mode 100644
index 00000000000..44997847cfb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dstring/default.nix
@@ -0,0 +1,14 @@
+{ cabal, baseUnicodeSymbols, dlist }:
+
+cabal.mkDerivation (self: {
+  pname = "dstring";
+  version = "0.4.0.3";
+  sha256 = "0wzj1wzls7w79ac84sc5msblh2dmfmcxm77drpdqdirl1pwdlq9c";
+  buildDepends = [ baseUnicodeSymbols dlist ];
+  meta = {
+    homepage = "https://github.com/basvandijk/dstring";
+    description = "Difference strings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 8fe6bb15f2c..e7c621f4947 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -612,6 +612,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   downloadCurl = callPackage ../development/libraries/haskell/download-curl { tagsoup = self.tagsoup_0_10_1; };
 
+  dstring = callPackage ../development/libraries/haskell/dstring {};
+
   editline = callPackage ../development/libraries/haskell/editline {};
 
   emailValidate = callPackage ../development/libraries/haskell/email-validate {};