diff --git a/pkgs/development/libraries/haskell/alternative-io/default.nix b/pkgs/development/libraries/haskell/alternative-io/default.nix
new file mode 100644
index 000000000000..434393178b51
--- /dev/null
+++ b/pkgs/development/libraries/haskell/alternative-io/default.nix
@@ -0,0 +1,17 @@
+{ cabal, Cabal, liftedBase, monadControl, transformers
+, transformersBase
+}:
+
+cabal.mkDerivation (self: {
+  pname = "alternative-io";
+  version = "0.0.0";
+  sha256 = "1nfwiw753m8ljrk47yi5cgncbfkddnr4fz44fk1pv501a86cmk8y";
+  buildDepends = [
+    Cabal liftedBase monadControl transformers transformersBase
+  ];
+  meta = {
+    description = "IO as Alternative instance";
+    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 0a7f30e9941c..11d68f31cfd3 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -426,6 +426,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   aeson = callPackage ../development/libraries/haskell/aeson {};
 
+  alternativeIo = callPackage ../development/libraries/haskell/alternative-io {};
+
   ansiTerminal = callPackage ../development/libraries/haskell/ansi-terminal {};
 
   ansiWlPprint = callPackage ../development/libraries/haskell/ansi-wl-pprint {};