diff --git a/manifest.dhall b/manifest.dhall
index 5180d0da5a4ed90ad05b1fbcf574f09c78c3157a..94e66ba3569891e3f33d2eeed9eb18a8592f884b 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -182,6 +182,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "constraints-extras" "0.3.2.1"
     , callHackage "constraints" "0.13.4"
     , callHackage "contravariant" "1.5.5"
+    , callHackage "control-monad-free" "0.6.2"
     , callHackage "cookie" "0.4.5"
     , callHackage "cpphs" "1.20.9.1"
     , callHackage "criterion-measurement" "0.2.0.0"
diff --git a/overlay.nix b/overlay.nix
index ee629920c3cf6ac3c2c03d6abe00174aa6e320a1..2b6ac83438b0a0deee3082dbc7362d31541d39c7 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -241,6 +241,8 @@ self: with pkgs.haskell.lib; {
 
   contravariant = self.callPackage (./pkgs/contravariant.nix) { };
 
+  control-monad-free = self.callPackage (./pkgs/control-monad-free.nix) { };
+
   cookie = self.callPackage (./pkgs/cookie.nix) { };
 
   cpphs = self.callPackage (./pkgs/cpphs.nix) { };
diff --git a/pkgs/control-monad-free.nix b/pkgs/control-monad-free.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1c2660654efe623a8f2a65b263a487d42040e409
--- /dev/null
+++ b/pkgs/control-monad-free.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, transformers }:
+mkDerivation {
+  pname = "control-monad-free";
+  version = "0.6.2";
+  sha256 = "63c830bd2af23e372ebfee628d9f538a32d8368cf74f897370d839bf8e7b4bc1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/pepeiborra/control-monad-free";
+  description = "Free monads and monad transformers";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}