diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5bdd53ef7d073aba6d317616bd76e6aafbb66bd1..12072683a1b9251c84f58ed220e34ba6c2b618f1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,2 +1,38 @@
-include:
-- remote: 'https://gitlab.horizon-haskell.net/gitlab/ci-templates/raw/master/default.yml'
+stages:
+- build
+- devour
+- cachix
+
+build:
+  stage: build
+  script:
+  - nix build .#packages.$SYSTEM.$PACKAGE -L
+  parallel:
+    matrix:
+      - SYSTEM:
+         - aarch64-darwin
+         - x86_64-linux
+        PACKAGE:
+         - sequence-formats
+
+devour:
+  stage: devour
+  script:
+  - nix build github:srid/devour-flake#packages.$SYSTEM.default -L --no-link --print-out-paths --override-input flake . --keep-going
+  parallel:
+    matrix:
+      - SYSTEM:
+         - aarch64-darwin
+         - x86_64-linux
+
+cachix:
+  stage: cachix
+  rules:
+    - if: $CI_COMMIT_REF_PROTECTED == "true"
+  script:
+  - nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.$SYSTEM.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
+  parallel:
+    matrix:
+      - SYSTEM:
+         - aarch64-darwin
+         - x86_64-linux
diff --git a/horizon.dhall b/horizon.dhall
index c54fcc84f8bacc5b743e1e8e05f9c87f901fb1a5..1887f0af8749209d9f81bd0d085d8a28d15b7c07 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -20,6 +20,7 @@ let packages =
       , iterable = H.callHackage "iterable" "3.0"
       , log-domain = H.callHackage "log-domain" "0.13.2"
       , memexml = H.callHackage "memexml" "0.0.3"
+      , sequence-formats = H.callHackage "sequence-formats" "1.8.0.1"
       , stringable = H.callHackage "stringable" "0.1.3"
       , text-binary = H.callHackage "text-binary" "0.2.1.1"
       }
diff --git a/horizon.lock b/horizon.lock
index 5ad2e9944246efce45b56e601fefe6106509bf1b..3e84946a74c38d3cc130c388d48b1d95626c8b9e 100644
--- a/horizon.lock
+++ b/horizon.lock
@@ -70,6 +70,10 @@
   , mapValue =
       "a13fd285ec121fbba353687c602ce1913cd084fc085cbb77b1acea858f614ac3"
   }
+, { mapKey = "sequence-formats"
+  , mapValue =
+      "9c51a27d3a671baaa2d2ad5ab83f36ca1a05c39abc9aa89768313e79cfc3486d"
+  }
 , { mapKey = "stringable"
   , mapValue =
       "a092d279593143ad2b91de87036f162c0dc49e8f0c213c1384432542474565df"
diff --git a/overlay.nix b/overlay.nix
index 0499d322e397f768c4c213e0b5d7e8ad3a9cd1f5..8de33d58afafda6663c3b417fad0337b12ed101c 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -38,6 +38,8 @@ final: prev: with pkgs.haskell.lib; {
 
   memexml = f final prev "memexml" (final.callPackage (./pkgs/memexml.nix) { });
 
+  sequence-formats = f final prev "sequence-formats" (final.callPackage (./pkgs/sequence-formats.nix) { });
+
   stringable = f final prev "stringable" (final.callPackage (./pkgs/stringable.nix) { });
 
   text-binary = f final prev "text-binary" (final.callPackage (./pkgs/text-binary.nix) { });
diff --git a/pkgs/sequence-formats.nix b/pkgs/sequence-formats.nix
new file mode 100644
index 0000000000000000000000000000000000000000..966785ae767ef16571b3f754652177b5771cbd90
--- /dev/null
+++ b/pkgs/sequence-formats.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, attoparsec, base, bytestring, containers, errors
+, exceptions, foldl, hspec, lens-family, lib, pipes
+, pipes-attoparsec, pipes-bytestring, pipes-safe, tasty
+, tasty-hunit, transformers, vector
+}:
+mkDerivation {
+  pname = "sequence-formats";
+  version = "1.8.0.1";
+  sha256 = "b3ff93fca7f78000933aa9c0380b60081f2291156391c4ee3951dce3db087c24";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    attoparsec base bytestring containers errors exceptions foldl
+    lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
+    transformers vector
+  ];
+  testHaskellDepends = [
+    base bytestring containers foldl hspec pipes pipes-safe tasty
+    tasty-hunit transformers vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = true;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/stschiff/sequence-formats";
+  description = "A package with basic parsing utilities for several Bioinformatic data formats";
+  license = lib.licenses.gpl3Only;
+  broken = false;
+}
\ No newline at end of file