diff --git a/horizon.dhall b/horizon.dhall
index 83138e5b73ef6329d00e056df16189c83cffb6b4..f96ba6314ba7162d5280d1e88cf25a75d12d1069 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -162,6 +162,7 @@ let otherLibraries =
       , H.callHackage "dns" "4.1.0"
       , H.callHackage "doctest-discover" "0.2.0.0"
       , H.callHackage "dom-lt" "0.2.3"
+      , H.callHackage "finite-typelits" "0.1.6.0"
       , H.callGit
           "flat"
           "https://github.com/Quid2/flat"
diff --git a/overlay.nix b/overlay.nix
index a379a33b6ad1c306f909cfde4a63df72cf110e30..cfd3c971a4e3fb3cb4ed54568aa613fc49a35866 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -117,6 +117,8 @@ final: prev: with pkgs.haskell.lib; {
 
   dom-lt = final.callPackage (./pkgs/dom-lt.nix) { };
 
+  finite-typelits = final.callPackage (./pkgs/finite-typelits.nix) { };
+
   flat = final.callPackage (./pkgs/flat.nix) { };
 
   generic-monoid = final.callPackage (./pkgs/generic-monoid.nix) { };
diff --git a/pkgs/finite-typelits.nix b/pkgs/finite-typelits.nix
new file mode 100644
index 0000000000000000000000000000000000000000..46a28b5227963f0fe6c0fa4fc6026a14cf655e30
--- /dev/null
+++ b/pkgs/finite-typelits.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, QuickCheck, base, deepseq, lib }:
+mkDerivation {
+  pname = "finite-typelits";
+  version = "0.1.6.0";
+  sha256 = "3046456b3b3b7a202da7dc61f909e5925f9eaa57d5e03ce81d3f76ca7d3b0438";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [ base deepseq QuickCheck ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mniip/finite-typelits";
+  description = "A type inhabited by finitely many values, indexed by type-level naturals";
+  license = lib.licenses.bsd3;
+  broken = false;
+}