From e7f19fc16cb5b47773bcca49fb1cab0d5c0011b9 Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Sat, 4 Mar 2023 17:49:56 +0000
Subject: [PATCH] FORK: strip haskell out of repo

---
 ChangeLog.md                                  |   5 +
 README.md                                     |   4 +-
 cabal.project                                 |   3 -
 flake.lock                                    | 110 ++++++-----
 flake.nix                                     |  90 +++++----
 horizon-spec.cabal                            | 108 -----------
 horizon-spec.dhall.nix => horizon-spec.nix    |   4 +-
 {dhall => horizon-spec}/package.dhall         |   0
 src/Horizon/Spec.hs                           |  57 ------
 src/Horizon/Spec/Types/CabalFlag.hs           |  13 --
 src/Horizon/Spec/Types/Compiler.hs            |  11 --
 src/Horizon/Spec/Types/Flag.hs                |  12 --
 src/Horizon/Spec/Types/GitSource.hs           |  14 --
 src/Horizon/Spec/Types/HackageSource.hs       |  13 --
 src/Horizon/Spec/Types/HaskellPackage.hs      |  27 ---
 src/Horizon/Spec/Types/HaskellSource.hs       |  19 --
 src/Horizon/Spec/Types/HorizonExport.hs       |  15 --
 src/Horizon/Spec/Types/LocalSource.hs         |  12 --
 src/Horizon/Spec/Types/Modifiers.hs           |  40 ----
 src/Horizon/Spec/Types/Name.hs                |  11 --
 src/Horizon/Spec/Types/Overlay.hs             |  11 --
 .../Spec/Types/OverlayExportSettings.hs       |  16 --
 src/Horizon/Spec/Types/OverlayFile.hs         |  20 --
 src/Horizon/Spec/Types/PackageList.hs         |  13 --
 src/Horizon/Spec/Types/PackageSet.hs          |  14 --
 .../Spec/Types/PackageSetExportSettings.hs    |  16 --
 src/Horizon/Spec/Types/PackageSetFile.hs      |  19 --
 src/Horizon/Spec/Types/PackagesDir.hs         |  19 --
 src/Horizon/Spec/Types/Policy.hs              |  13 --
 src/Horizon/Spec/Types/Repo.hs                |  11 --
 src/Horizon/Spec/Types/Revision.hs            |  11 --
 src/Horizon/Spec/Types/Subdir.hs              |  19 --
 src/Horizon/Spec/Types/TarballSource.hs       |  12 --
 src/Horizon/Spec/Types/Url.hs                 |  11 --
 src/Horizon/Spec/Types/Version.hs             |  11 --
 src/Horizon/Spec/Utils.hs                     |  31 ----
 test/Spec.hs                                  |  39 ----
 test/data/modified-overlay/input.dhall        |   9 -
 test/data/modified-overlay/output.golden      |  95 ----------
 test/data/modified-package-set/input.dhall    |   9 -
 test/data/modified-package-set/output.golden  |  95 ----------
 test/data/packages.dhall                      |  13 --
 test/data/sample-overlay-export/input.dhall   |   7 -
 test/data/sample-overlay-export/output.golden | 172 ------------------
 test/data/sample-overlay/input.dhall          |   3 -
 test/data/sample-overlay/output.golden        |  95 ----------
 .../sample-package-set-export/input.dhall     |   8 -
 .../sample-package-set-export/output.golden   | 172 ------------------
 test/data/sample-package-set/input.dhall      |   4 -
 test/data/sample-package-set/output.golden    |  95 ----------
 version                                       |   1 +
 51 files changed, 133 insertions(+), 1499 deletions(-)
 delete mode 100644 cabal.project
 delete mode 100644 horizon-spec.cabal
 rename horizon-spec.dhall.nix => horizon-spec.nix (91%)
 rename {dhall => horizon-spec}/package.dhall (100%)
 delete mode 100644 src/Horizon/Spec.hs
 delete mode 100644 src/Horizon/Spec/Types/CabalFlag.hs
 delete mode 100644 src/Horizon/Spec/Types/Compiler.hs
 delete mode 100644 src/Horizon/Spec/Types/Flag.hs
 delete mode 100644 src/Horizon/Spec/Types/GitSource.hs
 delete mode 100644 src/Horizon/Spec/Types/HackageSource.hs
 delete mode 100644 src/Horizon/Spec/Types/HaskellPackage.hs
 delete mode 100644 src/Horizon/Spec/Types/HaskellSource.hs
 delete mode 100644 src/Horizon/Spec/Types/HorizonExport.hs
 delete mode 100644 src/Horizon/Spec/Types/LocalSource.hs
 delete mode 100644 src/Horizon/Spec/Types/Modifiers.hs
 delete mode 100644 src/Horizon/Spec/Types/Name.hs
 delete mode 100644 src/Horizon/Spec/Types/Overlay.hs
 delete mode 100644 src/Horizon/Spec/Types/OverlayExportSettings.hs
 delete mode 100644 src/Horizon/Spec/Types/OverlayFile.hs
 delete mode 100644 src/Horizon/Spec/Types/PackageList.hs
 delete mode 100644 src/Horizon/Spec/Types/PackageSet.hs
 delete mode 100644 src/Horizon/Spec/Types/PackageSetExportSettings.hs
 delete mode 100644 src/Horizon/Spec/Types/PackageSetFile.hs
 delete mode 100644 src/Horizon/Spec/Types/PackagesDir.hs
 delete mode 100644 src/Horizon/Spec/Types/Policy.hs
 delete mode 100644 src/Horizon/Spec/Types/Repo.hs
 delete mode 100644 src/Horizon/Spec/Types/Revision.hs
 delete mode 100644 src/Horizon/Spec/Types/Subdir.hs
 delete mode 100644 src/Horizon/Spec/Types/TarballSource.hs
 delete mode 100644 src/Horizon/Spec/Types/Url.hs
 delete mode 100644 src/Horizon/Spec/Types/Version.hs
 delete mode 100644 src/Horizon/Spec/Utils.hs
 delete mode 100644 test/Spec.hs
 delete mode 100644 test/data/modified-overlay/input.dhall
 delete mode 100644 test/data/modified-overlay/output.golden
 delete mode 100644 test/data/modified-package-set/input.dhall
 delete mode 100644 test/data/modified-package-set/output.golden
 delete mode 100644 test/data/packages.dhall
 delete mode 100644 test/data/sample-overlay-export/input.dhall
 delete mode 100644 test/data/sample-overlay-export/output.golden
 delete mode 100644 test/data/sample-overlay/input.dhall
 delete mode 100644 test/data/sample-overlay/output.golden
 delete mode 100644 test/data/sample-package-set-export/input.dhall
 delete mode 100644 test/data/sample-package-set-export/output.golden
 delete mode 100644 test/data/sample-package-set/input.dhall
 delete mode 100644 test/data/sample-package-set/output.golden
 create mode 100644 version

diff --git a/ChangeLog.md b/ChangeLog.md
index f3f4a3f..705bdf3 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Changelog for horizon-spec
 
+## v0.8.0
+
+* Split repo into dhall spec and haskell spec. The haskell is downstream
+  of the dhall.
+
 ## v0.7.0
 
 * Horizon.Spec.Types.Policy: Add `Policy` type with `Keep` and `Pin`
diff --git a/README.md b/README.md
index 13c0aea..6494040 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,8 @@
-# horizon-spec
+# horizon-spec (dhall)
 
 horizon-spec contains the type definitions for
 [horizon-platform](https://horizon-haskell.net).
 
-Both haskell and dhall versions are supplied.
-
 ## Building
 
 ```
diff --git a/cabal.project b/cabal.project
deleted file mode 100644
index c14fcd1..0000000
--- a/cabal.project
+++ /dev/null
@@ -1,3 +0,0 @@
-packages: ./.
-
-test-show-details: streaming
diff --git a/flake.lock b/flake.lock
index 667cc53..360a38d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,23 @@
 {
   "nodes": {
+    "flake-parts": {
+      "inputs": {
+        "nixpkgs-lib": "nixpkgs-lib"
+      },
+      "locked": {
+        "lastModified": 1675933616,
+        "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=",
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "rev": "47478a4a003e745402acf63be7f9a092d51b83d7",
+        "type": "github"
+      },
+      "original": {
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "type": "github"
+      }
+    },
     "flake-utils": {
       "locked": {
         "lastModified": 1667077288,
@@ -16,20 +34,6 @@
       }
     },
     "flake-utils_2": {
-      "locked": {
-        "lastModified": 1659877975,
-        "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
-        "type": "github"
-      },
-      "original": {
-        "id": "flake-utils",
-        "type": "indirect"
-      }
-    },
-    "flake-utils_3": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -44,7 +48,7 @@
         "type": "github"
       }
     },
-    "flake-utils_4": {
+    "flake-utils_3": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -74,36 +78,36 @@
         "type": "github"
       }
     },
-    "horizon-gen-nix": {
-      "flake": false,
+    "horizon-platform": {
+      "inputs": {
+        "flake-parts": "flake-parts",
+        "get-flake": "get-flake",
+        "horizon-platform": "horizon-platform_2",
+        "lint-utils": "lint-utils",
+        "nixpkgs": "nixpkgs_2"
+      },
       "locked": {
-        "lastModified": 1667975665,
-        "narHash": "sha256-XQ6ZsZKa77M2Z0GtFsDhqhrR1HRe6R58xut2KfJmlCY=",
+        "lastModified": 1677856690,
+        "narHash": "sha256-8CPg/YsGA1m2EB7D+kmEfmTw2r4b3UONY7e+fL33ra8=",
         "ref": "refs/heads/master",
-        "rev": "29d95902966aa28ba09bed2d6e5edbabb0a153b5",
-        "revCount": 41,
+        "rev": "277dafc1d5114c0ffb91ac75202619c47f42fcb4",
+        "revCount": 973,
         "type": "git",
-        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
       },
       "original": {
         "type": "git",
-        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
       }
     },
-    "horizon-platform": {
-      "inputs": {
-        "flake-utils": "flake-utils_2",
-        "get-flake": "get-flake",
-        "horizon-gen-nix": "horizon-gen-nix",
-        "lint-utils": "lint-utils",
-        "nixpkgs": "nixpkgs_2"
-      },
+    "horizon-platform_2": {
+      "flake": false,
       "locked": {
-        "lastModified": 1668482535,
-        "narHash": "sha256-+mm6f6FVXXeiOK1JJ2PAbfBAo9kTwIsnX2lhF1R899Q=",
+        "lastModified": 1677263150,
+        "narHash": "sha256-VS8RQKojTgHgPQQeL9WBIdS2C3nMZ1s7tL1slvm1qfA=",
         "ref": "refs/heads/master",
-        "rev": "9d0b00c8ce7e5b53960b2702fb7edc4c9668ac7c",
-        "revCount": 739,
+        "rev": "2e6a2ea4546bf344f1b7d671d3006e0cc6be1ca1",
+        "revCount": 947,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
       },
@@ -114,15 +118,15 @@
     },
     "lint-utils": {
       "inputs": {
-        "flake-utils": "flake-utils_3",
+        "flake-utils": "flake-utils_2",
         "nixpkgs": "nixpkgs"
       },
       "locked": {
-        "lastModified": 1655192403,
-        "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=",
+        "lastModified": 1670623736,
+        "narHash": "sha256-CrA/yua5H0NfZ2tu1QZ2WpYi6pkWzyFxiwGk+KoF620=",
         "ref": "refs/heads/master",
-        "rev": "a7ae54afdc4c05a5aabf202d5a76d02705eb6147",
-        "revCount": 28,
+        "rev": "ee76287dc9987dd01ec38d38839b788a26ee5f24",
+        "revCount": 45,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/nix/lint-utils"
       },
@@ -133,7 +137,7 @@
     },
     "lint-utils_2": {
       "inputs": {
-        "flake-utils": "flake-utils_4",
+        "flake-utils": "flake-utils_3",
         "nixpkgs": [
           "nixpkgs"
         ]
@@ -168,13 +172,31 @@
         "type": "github"
       }
     },
+    "nixpkgs-lib": {
+      "locked": {
+        "dir": "lib",
+        "lastModified": 1675183161,
+        "narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e",
+        "type": "github"
+      },
+      "original": {
+        "dir": "lib",
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1665830552,
-        "narHash": "sha256-qel2bZ9TqfW8WzWCWdjuCy4bVFhhGsEeqFv/bj1ka2s=",
+        "lastModified": 1673947312,
+        "narHash": "sha256-xx/2nRwRy3bXrtry6TtydKpJpqHahjuDB5sFkQ/XNDE=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "26b7e6ab6a864c3e7e077bcb27a49f0480b9894a",
+        "rev": "2d38b664b4400335086a713a0036aafaa002c003",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index 75439a8..ee51122 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,4 +1,5 @@
 {
+
   description = "horizon-spec";
 
   inputs = {
@@ -31,54 +32,79 @@
       with pkgs.writers;
       let
 
-        dhall-horizon-spec = callPackage ./horizon-spec.dhall.nix { };
+        horizon-spec = callPackage ./horizon-spec.nix { };
 
-        overrides = hfinal: hprev:
-          {
-            horizon-spec = dontCheck (disableLibraryProfiling (hprev.callCabal2nix "horizon-spec" ./. { }));
-            dhall = disableLibraryProfiling (doJailbreak (appendConfigureFlag "-f-with-http" hprev.dhall));
-          };
+        haskellPackages = horizon-platform.legacyPackages.${system};
+
+        wrapDhallEnvironment = name: { dependencies }: script:
+          let
+            cache = ".cache";
+            cacheDhall = "${cache}/dhall";
+          in
+          writeBashBin name
+            ''
+              mkdir -p ${cacheDhall}
+              for dependency in ${builtins.toString dependencies}; do
+                ${pkgs.xorg.lndir}/bin/lndir -silent $dependency/${cacheDhall} ${cacheDhall}
+              done
+              export XDG_CACHE_HOME=$PWD/${cache}
+              ${script}
+            '';
 
-        legacyPackages = horizon-platform.legacyPackages.${system}.extend overrides;
+        writeDhallDocs = { name, src, version, input }:
+          let x = "${name}-${version}";
+          in mkDerivation {
+            name = x;
+            inherit src;
+            buildPhase = ''
+              export HOME=$PWD
+              ${haskellPackages.dhall-docs}/bin/dhall-docs --input ${input} --package-name ${x}
+            '';
+            installPhase = ''
+              mkdir -p $out
+              cp -r docs/* $out/
+            '';
+          };
 
-        horizon-spec-tests-wrapper = pkgs.writeShellApplication {
-          name = "horizon-spec-tests-wrapper";
-          runtimeInputs = [ dhall-horizon-spec ];
-          text = ''
-            ${legacyPackages.horizon-spec}/bin/horizon-spec-tests
-          '';
+        horizon-spec-docs = writeDhallDocs {
+          name = "horizon-spec";
+          src = self;
+          version = builtins.readFile ./version;
+          input = "horizon-spec";
         };
 
-      in
-      {
+        dhall-to-nixpkgs = writeBashBin "dhall-to-nixpkgs" ''
+          ${haskellPackages.dhall-to-nixpkgs} directory horizon-spec --fixed-output-derivations --name "horizon-spec" > horizon-spec.nix
+        '';
+
+      in {
+
+        apps = {
+          dhall-to-nixpkgs = {
+            type = "app";
+            program = "${dhall-to-nixpkgs}/bin/dhall-to-nixpkgs";
+          };
+        };
 
         checks =
           with lint-utils.outputs.linters.${system}; {
-            cabal-fmt = cabal-fmt { src = self; };
             dhall-format = dhall-format { src = self; };
-            hlint = hlint { src = self; };
-            horizon-spec-tee-check = tee-check {
-              name = "horizon-spec-tee-check";
-              src = self;
-              exe = "${horizon-spec-tests-wrapper}/bin/horizon-spec-tests-wrapper";
-            };
             nixpkgs-fmt = nixpkgs-fmt { src = self; };
-            stylish-haskell = stylish-haskell { src = self; };
-            werror = werror { pkg = legacyPackages.horizon-spec; };
           };
 
-        devShells.default = legacyPackages.horizon-spec.env.overrideAttrs (attrs: {
-          buildInputs = attrs.buildInputs ++ [
-            legacyPackages.cabal-install
+        devShells.default = pkgs.mkShell {
+          packages = [
+            haskellPackages.dhall
+            haskellPackages.dhall-docs
+            haskellPackages.dhall-nixpkgs
             pkgs.nixpkgs-fmt
           ];
-        });
-
-        inherit legacyPackages;
+        };
 
         packages = {
-          default = legacyPackages.horizon-spec;
-          dhall-horizon-spec = dhall-horizon-spec;
+          inherit horizon-spec-docs;
+          default = horizon-spec;
+          inherit horizon-spec;
         };
 
       });
diff --git a/horizon-spec.cabal b/horizon-spec.cabal
deleted file mode 100644
index 630dba8..0000000
--- a/horizon-spec.cabal
+++ /dev/null
@@ -1,108 +0,0 @@
-cabal-version:      3.0
-name:               horizon-spec
-version:            0.7.0
-synopsis:           Horizon Stable Package Set Type Definitions
-description:
-  This package contains the type definitions for the Horizon stable package set (https://horizon-haskell.net). This is a schema used to define package sets sourcing from hackage and git.
-
-category:           Package Management
-author:             Daniel Firth
-maintainer:         dan.firth@homotopic.tech
-copyright:          2022 Daniel Firth
-homepage:           https://horizon-haskell.net
-license:            MIT
-license-file:       LICENSE
-build-type:         Simple
-extra-source-files:
-  ChangeLog.md
-  dhall/package.dhall
-  README.md
-  test/data/modified-overlay/input.dhall
-  test/data/modified-overlay/output.golden
-  test/data/modified-package-set/input.dhall
-  test/data/modified-package-set/output.golden
-  test/data/sample-overlay/input.dhall
-  test/data/sample-overlay/output.golden
-  test/data/sample-package-set/input.dhall
-  test/data/sample-package-set/output.golden
-
-source-repository head
-  type:     git
-  location: https://gitlab.homotopic.tech/horizon/horizon-spec
-
-library
-  exposed-modules:
-    Horizon.Spec
-    Horizon.Spec.Types.CabalFlag
-    Horizon.Spec.Types.Compiler
-    Horizon.Spec.Types.Flag
-    Horizon.Spec.Types.GitSource
-    Horizon.Spec.Types.HackageSource
-    Horizon.Spec.Types.HaskellPackage
-    Horizon.Spec.Types.HaskellSource
-    Horizon.Spec.Types.HorizonExport
-    Horizon.Spec.Types.LocalSource
-    Horizon.Spec.Types.Modifiers
-    Horizon.Spec.Types.Name
-    Horizon.Spec.Types.Overlay
-    Horizon.Spec.Types.OverlayExportSettings
-    Horizon.Spec.Types.OverlayFile
-    Horizon.Spec.Types.PackageList
-    Horizon.Spec.Types.PackagesDir
-    Horizon.Spec.Types.PackageSet
-    Horizon.Spec.Types.PackageSetExportSettings
-    Horizon.Spec.Types.PackageSetFile
-    Horizon.Spec.Types.Policy
-    Horizon.Spec.Types.Repo
-    Horizon.Spec.Types.Revision
-    Horizon.Spec.Types.Subdir
-    Horizon.Spec.Types.TarballSource
-    Horizon.Spec.Types.Url
-    Horizon.Spec.Types.Version
-    Horizon.Spec.Utils
-
-  hs-source-dirs:     src
-  default-extensions:
-    DataKinds
-    DeriveGeneric
-    DerivingStrategies
-    DuplicateRecordFields
-    GADTs
-    GeneralizedNewtypeDeriving
-    StandaloneKindSignatures
-
-  ghc-options:
-    -Weverything -Wno-all-missed-specialisations -Wno-implicit-prelude
-    -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
-    -Wno-safe -Wno-unsafe
-
-  build-depends:
-    , base                 >=4.7 && <5
-    , containers
-    , dhall
-    , path
-    , path-dhall-instance
-    , template-haskell
-    , text
-    , th-lift
-
-  default-language:   Haskell2010
-
-executable horizon-spec-tests
-  main-is:            Spec.hs
-  hs-source-dirs:     test
-  ghc-options:
-    -Weverything -Wno-all-missed-specialisations -Wno-implicit-prelude
-    -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
-    -Wno-safe -Wno-unsafe
-
-  default-extensions: TypeApplications
-  build-depends:
-    , base           >=4.7 && <5
-    , dhall
-    , horizon-spec
-    , prettyprinter
-    , sydtest
-    , text
-
-  default-language:   Haskell2010
diff --git a/horizon-spec.dhall.nix b/horizon-spec.nix
similarity index 91%
rename from horizon-spec.dhall.nix
rename to horizon-spec.nix
index a5530ba..f0a2fb1 100644
--- a/horizon-spec.dhall.nix
+++ b/horizon-spec.nix
@@ -1,10 +1,10 @@
 { buildDhallDirectoryPackage, buildDhallUrl }:
 buildDhallDirectoryPackage {
   name = "horizon-spec";
-  src = ./dhall;
+  src = ./horizon-spec;
   file = "package.dhall";
   source = false;
-  document = false;
+  document = true;
   dependencies = [
     (buildDhallUrl {
       url = "https://raw.githubusercontent.com/dhall-lang/dhall-lang/v21.1.0/Prelude/package.dhall";
diff --git a/dhall/package.dhall b/horizon-spec/package.dhall
similarity index 100%
rename from dhall/package.dhall
rename to horizon-spec/package.dhall
diff --git a/src/Horizon/Spec.hs b/src/Horizon/Spec.hs
deleted file mode 100644
index 49f3ca9..0000000
--- a/src/Horizon/Spec.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
-{-# LANGUAGE DuplicateRecordFields #-}
-module Horizon.Spec
- ( module Horizon.Spec.Types.CabalFlag
- , module Horizon.Spec.Types.Compiler
- , module Horizon.Spec.Types.Flag
- , module Horizon.Spec.Types.GitSource
- , module Horizon.Spec.Types.HackageSource
- , module Horizon.Spec.Types.HaskellPackage
- , module Horizon.Spec.Types.HaskellSource
- , module Horizon.Spec.Types.HorizonExport
- , module Horizon.Spec.Types.LocalSource
- , module Horizon.Spec.Types.Modifiers
- , module Horizon.Spec.Types.Name
- , module Horizon.Spec.Types.OverlayExportSettings
- , module Horizon.Spec.Types.OverlayFile
- , module Horizon.Spec.Types.Overlay
- , module Horizon.Spec.Types.PackageList
- , module Horizon.Spec.Types.PackageSetExportSettings
- , module Horizon.Spec.Types.PackageSetFile
- , module Horizon.Spec.Types.PackageSet
- , module Horizon.Spec.Types.PackagesDir
- , module Horizon.Spec.Types.Repo
- , module Horizon.Spec.Types.Revision
- , module Horizon.Spec.Types.Subdir
- , module Horizon.Spec.Types.TarballSource
- , module Horizon.Spec.Types.Url
- , module Horizon.Spec.Types.Version
- , module Horizon.Spec.Utils
- ) where
-
-import           Horizon.Spec.Types.CabalFlag
-import           Horizon.Spec.Types.Compiler
-import           Horizon.Spec.Types.Flag
-import           Horizon.Spec.Types.GitSource
-import           Horizon.Spec.Types.HackageSource
-import           Horizon.Spec.Types.HaskellPackage
-import           Horizon.Spec.Types.HaskellSource
-import           Horizon.Spec.Types.HorizonExport
-import           Horizon.Spec.Types.LocalSource
-import           Horizon.Spec.Types.Modifiers
-import           Horizon.Spec.Types.Name
-import           Horizon.Spec.Types.Overlay
-import           Horizon.Spec.Types.OverlayExportSettings
-import           Horizon.Spec.Types.OverlayFile
-import           Horizon.Spec.Types.PackageList
-import           Horizon.Spec.Types.PackagesDir
-import           Horizon.Spec.Types.PackageSet
-import           Horizon.Spec.Types.PackageSetExportSettings
-import           Horizon.Spec.Types.PackageSetFile
-import           Horizon.Spec.Types.Repo
-import           Horizon.Spec.Types.Revision
-import           Horizon.Spec.Types.Subdir
-import           Horizon.Spec.Types.TarballSource
-import           Horizon.Spec.Types.Url
-import           Horizon.Spec.Types.Version
-import           Horizon.Spec.Utils
diff --git a/src/Horizon/Spec/Types/CabalFlag.hs b/src/Horizon/Spec/Types/CabalFlag.hs
deleted file mode 100644
index e241b0f..0000000
--- a/src/Horizon/Spec/Types/CabalFlag.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.CabalFlag (CabalFlag(MkCabalFlag)) where
-
-import           Data.Kind               (Type)
-import           Data.Text               (Text)
-import           Dhall                   (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Flag (Flag)
-
-type CabalFlag :: Type
-data CabalFlag where
-  MkCabalFlag :: Flag Text -> CabalFlag
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/Compiler.hs b/src/Horizon/Spec/Types/Compiler.hs
deleted file mode 100644
index 8d7dd8c..0000000
--- a/src/Horizon/Spec/Types/Compiler.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Compiler (Compiler(MkCompiler), fromCompiler) where
-
-import           Data.Kind   (Type)
-import           Data.String (IsString)
-import           Data.Text   (Text)
-import           Dhall       (FromDhall, ToDhall)
-
-type Compiler :: Type
-newtype Compiler = MkCompiler { fromCompiler :: Text }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Types/Flag.hs b/src/Horizon/Spec/Types/Flag.hs
deleted file mode 100644
index be7caf2..0000000
--- a/src/Horizon/Spec/Types/Flag.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.Flag (Flag(Enable,Disable)) where
-
-import           Data.Kind (Type)
-import           Dhall     (FromDhall, Generic, ToDhall)
-
-type Flag :: Type -> Type
-data Flag a where
-  Enable :: a -> Flag a
-  Disable :: a -> Flag a
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/GitSource.hs b/src/Horizon/Spec/Types/GitSource.hs
deleted file mode 100644
index 43bd23e..0000000
--- a/src/Horizon/Spec/Types/GitSource.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.GitSource (GitSource(MkGitSource), url, revision, subdir) where
-
-import           Data.Kind                   (Type)
-import           Dhall                       (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Repo     (Repo)
-import           Horizon.Spec.Types.Revision (Revision)
-import           Horizon.Spec.Types.Subdir   (Subdir)
-
-type GitSource :: Type
-data GitSource where
-  MkGitSource :: { url :: Repo, revision :: Revision, subdir :: Maybe Subdir } -> GitSource
-  deriving stock (Eq, Show, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/HackageSource.hs b/src/Horizon/Spec/Types/HackageSource.hs
deleted file mode 100644
index b853163..0000000
--- a/src/Horizon/Spec/Types/HackageSource.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.HackageSource (HackageSource(MkHackageSource), name, version) where
-
-import           Data.Kind                  (Type)
-import           Dhall                      (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Name    (Name)
-import           Horizon.Spec.Types.Version (Version)
-
-type HackageSource :: Type
-data HackageSource where
-  MkHackageSource :: { name :: Name, version :: Version } -> HackageSource
-  deriving stock (Eq, Show, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/HaskellPackage.hs b/src/Horizon/Spec/Types/HaskellPackage.hs
deleted file mode 100644
index 100532c..0000000
--- a/src/Horizon/Spec/Types/HaskellPackage.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.HaskellPackage
-  ( HaskellPackage(MkHaskellPackage)
-  , source
-  , modifiers
-  , flags
-  , mkHaskellPackage
-  ) where
-
-import           Data.Kind                        (Type)
-import           Dhall                            (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.CabalFlag     (CabalFlag)
-import           Horizon.Spec.Types.HaskellSource (HaskellSource)
-import           Horizon.Spec.Types.Modifiers     (Modifiers, defaultModifiers)
-import           Horizon.Spec.Types.Policy        (Policy)
-
-type HaskellPackage :: Type
-data HaskellPackage where
-  MkHaskellPackage :: { source :: HaskellSource
-                      , modifiers :: Modifiers
-                      , policy :: [Policy]
-                      , flags :: [CabalFlag] } -> HaskellPackage
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
-
-mkHaskellPackage :: HaskellSource -> HaskellPackage
-mkHaskellPackage x = MkHaskellPackage { source = x, flags = [], modifiers = defaultModifiers, policy = [] }
diff --git a/src/Horizon/Spec/Types/HaskellSource.hs b/src/Horizon/Spec/Types/HaskellSource.hs
deleted file mode 100644
index 418c194..0000000
--- a/src/Horizon/Spec/Types/HaskellSource.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-
-module Horizon.Spec.Types.HaskellSource (HaskellSource(FromGit, FromHackage, FromTarball, FromLocal)) where
-
-import           Data.Kind                        (Type)
-import           Dhall                            (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.GitSource     (GitSource)
-import           Horizon.Spec.Types.HackageSource (HackageSource)
-import           Horizon.Spec.Types.LocalSource   (LocalSource)
-import           Horizon.Spec.Types.TarballSource (TarballSource)
-
-type HaskellSource :: Type
-data HaskellSource where
-  FromGit :: GitSource -> HaskellSource
-  FromHackage :: HackageSource -> HaskellSource
-  FromLocal :: LocalSource -> HaskellSource
-  FromTarball :: TarballSource -> HaskellSource
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/HorizonExport.hs b/src/Horizon/Spec/Types/HorizonExport.hs
deleted file mode 100644
index d6bd36b..0000000
--- a/src/Horizon/Spec/Types/HorizonExport.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.HorizonExport (HorizonExport(MakePackageSet, MakeOverlay)) where
-
-import           Data.Kind                                   (Type)
-import           Dhall                                       (FromDhall,
-                                                              Generic, ToDhall)
-import           Horizon.Spec.Types.OverlayExportSettings    (OverlayExportSettings)
-import           Horizon.Spec.Types.PackageSetExportSettings (PackageSetExportSettings)
-
-type HorizonExport :: Type
-data HorizonExport where
-  MakePackageSet :: PackageSetExportSettings -> HorizonExport
-  MakeOverlay :: OverlayExportSettings -> HorizonExport
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/LocalSource.hs b/src/Horizon/Spec/Types/LocalSource.hs
deleted file mode 100644
index 985c137..0000000
--- a/src/Horizon/Spec/Types/LocalSource.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Horizon.Spec.Types.LocalSource (LocalSource(MkLocalSource), fromLocalSource) where
-
-import           Data.Kind                 (Type)
-import           Dhall                     (FromDhall, ToDhall)
-import           Horizon.Spec.Types.Subdir (Subdir)
-
-
-type LocalSource :: Type
-newtype LocalSource where
-  MkLocalSource :: { fromLocalSource :: Subdir } -> LocalSource
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/Modifiers.hs b/src/Horizon/Spec/Types/Modifiers.hs
deleted file mode 100644
index aa21cc6..0000000
--- a/src/Horizon/Spec/Types/Modifiers.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.Modifiers
-  ( Modifiers(MkModifiers)
-  , doBenchmark
-  , doCheck
-  , doJailbreak
-  , enableProfiling
-  , includeBenchmarks
-  , includeExecutables
-  , includeTests
-  , defaultModifiers
-  ) where
-
-import           Data.Kind (Type)
-import           Dhall     (FromDhall, Generic, ToDhall)
-
-
-type Modifiers :: Type
-data Modifiers where
-  MkModifiers :: { doBenchmark :: Bool
-                 , doCheck :: Bool
-                 , doJailbreak :: Bool
-                 , enableProfiling :: Bool
-                 , includeBenchmarks :: Bool
-                 , includeExecutables :: Bool
-                 , includeTests :: Bool } -> Modifiers
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
-
-
-defaultModifiers :: Modifiers
-defaultModifiers = MkModifiers
-  { doBenchmark = False
-  , doCheck = False
-  , doJailbreak = True
-  , enableProfiling = True
-  , includeBenchmarks = True
-  , includeExecutables = True
-  , includeTests = True
-  }
diff --git a/src/Horizon/Spec/Types/Name.hs b/src/Horizon/Spec/Types/Name.hs
deleted file mode 100644
index 935ea94..0000000
--- a/src/Horizon/Spec/Types/Name.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Name (Name(MkName), fromName) where
-
-import           Data.Kind   (Type)
-import           Data.String (IsString)
-import           Data.Text   (Text)
-import           Dhall       (FromDhall, ToDhall)
-
-type Name :: Type
-newtype Name = MkName { fromName :: Text }
-  deriving stock (Eq, Show, Ord)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Types/Overlay.hs b/src/Horizon/Spec/Types/Overlay.hs
deleted file mode 100644
index c70c027..0000000
--- a/src/Horizon/Spec/Types/Overlay.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Overlay (Overlay(MkOverlay), fromOverlay) where
-
-import           Data.Kind                     (Type)
-import           Dhall                         (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.PackageSet (PackageSet)
-
-type Overlay :: Type
-newtype Overlay where
-  MkOverlay :: { fromOverlay :: PackageSet } -> Overlay
-  deriving stock (Show, Eq, Generic)
-  deriving newtype (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/OverlayExportSettings.hs b/src/Horizon/Spec/Types/OverlayExportSettings.hs
deleted file mode 100644
index 8e84f25..0000000
--- a/src/Horizon/Spec/Types/OverlayExportSettings.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.OverlayExportSettings (OverlayExportSettings(MkOverlayExportSettings), packagesDir, overlayFile, overlay) where
-
-import           Data.Kind                      (Type)
-import           Dhall                          (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Overlay     (Overlay)
-import           Horizon.Spec.Types.OverlayFile (OverlayFile)
-import           Horizon.Spec.Types.PackagesDir (PackagesDir)
-
-type OverlayExportSettings :: Type
-data OverlayExportSettings where
-  MkOverlayExportSettings :: { packagesDir :: PackagesDir
-                                , overlayFile :: OverlayFile
-                                , overlay :: Overlay } -> OverlayExportSettings
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/OverlayFile.hs b/src/Horizon/Spec/Types/OverlayFile.hs
deleted file mode 100644
index c713889..0000000
--- a/src/Horizon/Spec/Types/OverlayFile.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE DeriveAnyClass  #-}
-{-# LANGUAGE TemplateHaskell #-}
-module Horizon.Spec.Types.OverlayFile (OverlayFile(MkOverlayFile), fromOverlayFile, mkOverlayFile) where
-
-import           Data.Kind                (Type)
-import           Dhall                    (FromDhall, ToDhall)
-import           Language.Haskell.TH      (Exp, Q)
-import           Language.Haskell.TH.Lift (deriveLift, lift)
-import           Path                     (File, Path, Rel, parseRelFile)
-import           Path.Dhall               ()
-
-type OverlayFile :: Type
-newtype OverlayFile = MkOverlayFile { fromOverlayFile :: Path Rel File }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall)
-
-$(deriveLift 'MkOverlayFile)
-
-mkOverlayFile :: FilePath -> Q Exp
-mkOverlayFile = either (error . show) (lift . MkOverlayFile) . parseRelFile
diff --git a/src/Horizon/Spec/Types/PackageList.hs b/src/Horizon/Spec/Types/PackageList.hs
deleted file mode 100644
index 2080b2c..0000000
--- a/src/Horizon/Spec/Types/PackageList.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Horizon.Spec.Types.PackageList (PackageList(MkPackageList), fromPackageList) where
-
-import           Data.Kind                         (Type)
-import           Data.Map                          (Map)
-import           Dhall                             (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.HaskellPackage (HaskellPackage)
-import           Horizon.Spec.Types.Name           (Name)
-
-type PackageList :: Type
-newtype PackageList where
-  MkPackageList :: { fromPackageList :: Map Name HaskellPackage } -> PackageList
-  deriving stock (Show, Eq, Generic)
-  deriving newtype (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/PackageSet.hs b/src/Horizon/Spec/Types/PackageSet.hs
deleted file mode 100644
index 6be972e..0000000
--- a/src/Horizon/Spec/Types/PackageSet.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.PackageSet (PackageSet(MkPackageSet), compiler, packages) where
-
-import           Data.Kind                      (Type)
-import           Dhall                          (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Compiler    (Compiler)
-import           Horizon.Spec.Types.PackageList (PackageList)
-
-type PackageSet :: Type
-data PackageSet where
-  MkPackageSet :: { compiler :: Compiler
-                  , packages :: PackageList } -> PackageSet
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/PackageSetExportSettings.hs b/src/Horizon/Spec/Types/PackageSetExportSettings.hs
deleted file mode 100644
index b617464..0000000
--- a/src/Horizon/Spec/Types/PackageSetExportSettings.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.PackageSetExportSettings (PackageSetExportSettings(MkPackageSetExportSettings), packagesDir, packageSetFile, packageSet) where
-
-import           Data.Kind                         (Type)
-import           Dhall                             (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.PackagesDir    (PackagesDir)
-import           Horizon.Spec.Types.PackageSet     (PackageSet)
-import           Horizon.Spec.Types.PackageSetFile (PackageSetFile)
-
-type PackageSetExportSettings :: Type
-data PackageSetExportSettings where
-  MkPackageSetExportSettings :: { packagesDir :: PackagesDir
-                                , packageSetFile :: PackageSetFile
-                                , packageSet :: PackageSet } -> PackageSetExportSettings
-  deriving stock (Show, Eq, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/PackageSetFile.hs b/src/Horizon/Spec/Types/PackageSetFile.hs
deleted file mode 100644
index 77a2832..0000000
--- a/src/Horizon/Spec/Types/PackageSetFile.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-module Horizon.Spec.Types.PackageSetFile (PackageSetFile(MkPackageSetFile), fromPackageSetFile, mkPackageSetFile) where
-
-import           Data.Kind                (Type)
-import           Dhall                    (FromDhall, ToDhall)
-import           Language.Haskell.TH      (Exp, Q)
-import           Language.Haskell.TH.Lift (deriveLift, lift)
-import           Path                     (File, Path, Rel, parseRelFile)
-import           Path.Dhall               ()
-
-type PackageSetFile :: Type
-newtype PackageSetFile = MkPackageSetFile { fromPackageSetFile :: Path Rel File }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall)
-
-$(deriveLift 'MkPackageSetFile)
-
-mkPackageSetFile :: FilePath -> Q Exp
-mkPackageSetFile = either (error . show) (lift . MkPackageSetFile) . parseRelFile
diff --git a/src/Horizon/Spec/Types/PackagesDir.hs b/src/Horizon/Spec/Types/PackagesDir.hs
deleted file mode 100644
index b4067c8..0000000
--- a/src/Horizon/Spec/Types/PackagesDir.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-module Horizon.Spec.Types.PackagesDir (PackagesDir(MkPackagesDir), fromPackagesDir, mkPackagesDir) where
-
-import           Data.Kind                (Type)
-import           Dhall                    (FromDhall, ToDhall)
-import           Language.Haskell.TH      (Exp, Q)
-import           Language.Haskell.TH.Lift (deriveLift, lift)
-import           Path                     (Dir, Path, Rel, parseRelDir)
-import           Path.Dhall               ()
-
-type PackagesDir :: Type
-newtype PackagesDir = MkPackagesDir { fromPackagesDir :: Path Rel Dir }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall)
-
-$(deriveLift 'MkPackagesDir)
-
-mkPackagesDir :: FilePath -> Q Exp
-mkPackagesDir = either (error . show) (lift . MkPackagesDir) . parseRelDir
diff --git a/src/Horizon/Spec/Types/Policy.hs b/src/Horizon/Spec/Types/Policy.hs
deleted file mode 100644
index 3b86b87..0000000
--- a/src/Horizon/Spec/Types/Policy.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE DeriveAnyClass #-}
-module Horizon.Spec.Types.Policy (Policy(Keep, Pin)) where
-
-import           Data.Kind    (Type)
-import           Dhall        (FromDhall, ToDhall)
-import           GHC.Generics (Generic)
-
-type Policy :: Type
-data Policy where
-  Keep :: Policy
-  Pin  :: Policy
-  deriving stock (Eq, Show, Ord, Generic)
-  deriving anyclass (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/Repo.hs b/src/Horizon/Spec/Types/Repo.hs
deleted file mode 100644
index b9c868d..0000000
--- a/src/Horizon/Spec/Types/Repo.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Repo (Repo(MkRepo), fromRepo) where
-
-import           Data.Kind              (Type)
-import           Data.String            (IsString)
-import           Dhall                  (FromDhall, ToDhall)
-import           Horizon.Spec.Types.Url (Url)
-
-type Repo :: Type
-newtype Repo = MkRepo { fromRepo :: Url }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Types/Revision.hs b/src/Horizon/Spec/Types/Revision.hs
deleted file mode 100644
index 4fed019..0000000
--- a/src/Horizon/Spec/Types/Revision.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Revision (Revision(MkRevision), fromRevision) where
-
-import           Data.Kind   (Type)
-import           Data.String (IsString)
-import           Data.Text   (Text)
-import           Dhall       (FromDhall, ToDhall)
-
-type Revision :: Type
-newtype Revision = MkRevision { fromRevision :: Text }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Types/Subdir.hs b/src/Horizon/Spec/Types/Subdir.hs
deleted file mode 100644
index 625de27..0000000
--- a/src/Horizon/Spec/Types/Subdir.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-module Horizon.Spec.Types.Subdir (Subdir(MkSubdir), fromSubdir, mkSubdir) where
-
-import           Data.Kind                (Type)
-import           Dhall                    (FromDhall, ToDhall)
-import           Language.Haskell.TH      (Exp, Q)
-import           Language.Haskell.TH.Lift (deriveLift, lift)
-import           Path                     (Dir, Path, Rel, parseRelDir)
-import           Path.Dhall               ()
-
-type Subdir :: Type
-newtype Subdir = MkSubdir { fromSubdir :: Path Rel Dir }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall)
-
-$(deriveLift 'MkSubdir)
-
-mkSubdir :: FilePath -> Q Exp
-mkSubdir = either (error . show) (lift . MkSubdir) . parseRelDir
diff --git a/src/Horizon/Spec/Types/TarballSource.hs b/src/Horizon/Spec/Types/TarballSource.hs
deleted file mode 100644
index d055f6e..0000000
--- a/src/Horizon/Spec/Types/TarballSource.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Horizon.Spec.Types.TarballSource (TarballSource(MkTarballSource), fromTarballSource) where
-
-import           Data.Kind              (Type)
-import           Dhall                  (FromDhall, Generic, ToDhall)
-import           Horizon.Spec.Types.Url (Url)
-
-
-type TarballSource :: Type
-newtype TarballSource where
-  MkTarballSource :: { fromTarballSource :: Url } -> TarballSource
-  deriving stock (Eq, Show, Generic)
-  deriving newtype (FromDhall, ToDhall)
diff --git a/src/Horizon/Spec/Types/Url.hs b/src/Horizon/Spec/Types/Url.hs
deleted file mode 100644
index 4da1fea..0000000
--- a/src/Horizon/Spec/Types/Url.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Url (Url(MkUrl), fromUrl) where
-
-import           Data.Kind   (Type)
-import           Data.String (IsString)
-import           Data.Text   (Text)
-import           Dhall       (FromDhall, ToDhall)
-
-type Url :: Type
-newtype Url = MkUrl { fromUrl :: Text }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Types/Version.hs b/src/Horizon/Spec/Types/Version.hs
deleted file mode 100644
index 22bb1bd..0000000
--- a/src/Horizon/Spec/Types/Version.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Horizon.Spec.Types.Version (Version(MkVersion), fromVersion) where
-
-import           Data.Kind   (Type)
-import           Data.String (IsString)
-import           Data.Text   (Text)
-import           Dhall       (FromDhall, ToDhall)
-
-type Version :: Type
-newtype Version = MkVersion { fromVersion :: Text }
-  deriving stock (Eq, Show)
-  deriving newtype (FromDhall, ToDhall, IsString)
diff --git a/src/Horizon/Spec/Utils.hs b/src/Horizon/Spec/Utils.hs
deleted file mode 100644
index 05ab7a7..0000000
--- a/src/Horizon/Spec/Utils.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-module Horizon.Spec.Utils
-  ( callHackage
-  , callGit
-  , callTarball
-  , callLocal) where
-
-import           Horizon.Spec.Types.GitSource      (GitSource (MkGitSource))
-import           Horizon.Spec.Types.HackageSource  (HackageSource (MkHackageSource))
-import           Horizon.Spec.Types.HaskellPackage (HaskellPackage,
-                                                    mkHaskellPackage)
-import           Horizon.Spec.Types.HaskellSource  (HaskellSource (FromGit, FromHackage, FromLocal, FromTarball))
-import           Horizon.Spec.Types.LocalSource    (LocalSource (MkLocalSource))
-import           Horizon.Spec.Types.Name           (Name)
-import           Horizon.Spec.Types.Repo           (Repo)
-import           Horizon.Spec.Types.Revision       (Revision)
-import           Horizon.Spec.Types.Subdir         (Subdir)
-import           Horizon.Spec.Types.TarballSource  (TarballSource (MkTarballSource))
-import           Horizon.Spec.Types.Url            (Url)
-import           Horizon.Spec.Types.Version        (Version)
-
-callHackage :: Name -> Version -> HaskellPackage
-callHackage n = mkHaskellPackage . FromHackage . MkHackageSource n
-
-callGit :: Repo -> Revision -> Maybe Subdir -> HaskellPackage
-callGit u x d = mkHaskellPackage . FromGit $ MkGitSource u x d
-
-callTarball :: Url -> HaskellPackage
-callTarball = mkHaskellPackage . FromTarball . MkTarballSource
-
-callLocal :: Subdir -> HaskellPackage
-callLocal = mkHaskellPackage . FromLocal . MkLocalSource
diff --git a/test/Spec.hs b/test/Spec.hs
deleted file mode 100644
index e63def4..0000000
--- a/test/Spec.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Main ( main ) where
-
-import           Data.Proxy                (Proxy (Proxy))
-import           Data.Text.Encoding        (encodeUtf8)
-import           Dhall                     (FromDhall, ToDhall, auto, embed,
-                                            inject, inputFile)
-import           Dhall.Pretty              (layout, prettyExpr)
-import           Horizon.Spec              (HorizonExport, Overlay, PackageSet)
-import           Prettyprinter.Render.Text (renderStrict)
-import           Test.Syd                  (Spec, describe,
-                                            doNotRandomiseExecutionOrder, it,
-                                            pureGoldenByteStringFile,
-                                            sequential, sydTest)
-
-expectedOutputTest
-  :: forall a.
-     FromDhall a
-  => ToDhall a
-  => Proxy a
-  -> FilePath
-  -> Spec
-expectedOutputTest _ n = describe n $ do
-  it "expands correctly" $ do
-    x <- inputFile @a auto $ "test/data/" ++ n ++ "/input.dhall"
-    let doc = prettyExpr $ embed inject x
-    let docstr = encodeUtf8 $ renderStrict $ layout doc
-    pure $ pureGoldenByteStringFile ("test/data/" ++ n ++ "/output.golden") docstr
-
-main :: IO ()
-main = sydTest $ doNotRandomiseExecutionOrder $ sequential $ do
-  expectedOutputTest (Proxy @PackageSet) "sample-package-set"
-  expectedOutputTest (Proxy @PackageSet) "modified-package-set"
-  expectedOutputTest (Proxy @Overlay) "sample-overlay"
-  expectedOutputTest (Proxy @Overlay) "modified-overlay"
-  expectedOutputTest (Proxy @HorizonExport) "sample-package-set-export"
-  expectedOutputTest (Proxy @HorizonExport) "sample-overlay-export"
diff --git a/test/data/modified-overlay/input.dhall b/test/data/modified-overlay/input.dhall
deleted file mode 100644
index d64b1b7..0000000
--- a/test/data/modified-overlay/input.dhall
+++ /dev/null
@@ -1,9 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in    { compiler = "ghc-9.4.2"
-      , packages =
-          H.modPackageList
-            H.Modifiers::{ doCheck = True, doJailbreak = False }
-            (toMap ../packages.dhall)
-      }
-    : H.Overlay
diff --git a/test/data/modified-overlay/output.golden b/test/data/modified-overlay/output.golden
deleted file mode 100644
index d773975..0000000
--- a/test/data/modified-overlay/output.golden
+++ /dev/null
@@ -1,95 +0,0 @@
-{ compiler = "ghc-9.4.2"
-, packages =
-  [ { mapKey = "Cabal-syntax"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromGit
-            { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-            , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-            , subdir = Some "Cabal-syntax/"
-            }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "lens"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromHackage
-            { name = "lens", version = "5.2" }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "myPackage"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromLocal
-            "myPackage/"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "network-mux"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromTarball
-            "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/test/data/modified-package-set/input.dhall b/test/data/modified-package-set/input.dhall
deleted file mode 100644
index 8bac86e..0000000
--- a/test/data/modified-package-set/input.dhall
+++ /dev/null
@@ -1,9 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in    { compiler = "ghc-9.4.2"
-      , packages =
-          H.modPackageList
-            H.Modifiers::{ doCheck = True, doJailbreak = False }
-            (toMap ../packages.dhall)
-      }
-    : H.PackageSet
diff --git a/test/data/modified-package-set/output.golden b/test/data/modified-package-set/output.golden
deleted file mode 100644
index d773975..0000000
--- a/test/data/modified-package-set/output.golden
+++ /dev/null
@@ -1,95 +0,0 @@
-{ compiler = "ghc-9.4.2"
-, packages =
-  [ { mapKey = "Cabal-syntax"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromGit
-            { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-            , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-            , subdir = Some "Cabal-syntax/"
-            }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "lens"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromHackage
-            { name = "lens", version = "5.2" }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "myPackage"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromLocal
-            "myPackage/"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "network-mux"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromTarball
-            "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = True
-        , doJailbreak = False
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/test/data/packages.dhall b/test/data/packages.dhall
deleted file mode 100644
index f2bb1bf..0000000
--- a/test/data/packages.dhall
+++ /dev/null
@@ -1,13 +0,0 @@
-let H = ../../dhall/package.dhall
-
-in  { lens = H.callHackage "lens" "5.2"
-    , Cabal-syntax =
-        H.callGit
-          "https://gitlab.haskell.org/ghc/packages/Cabal"
-          "e714824c6e652bf894f914bc57feccc15759668a"
-          (Some "Cabal-syntax")
-    , network-mux =
-        H.callTarball
-          "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-    , myPackage = H.callLocal "./myPackage"
-    }
diff --git a/test/data/sample-overlay-export/input.dhall b/test/data/sample-overlay-export/input.dhall
deleted file mode 100644
index 7a12b89..0000000
--- a/test/data/sample-overlay-export/input.dhall
+++ /dev/null
@@ -1,7 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in  H.HorizonExport.MakeOverlay
-      { overlayFile = "overlay.nix"
-      , packagesDir = "pkgs"
-      , overlay = { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall }
-      }
diff --git a/test/data/sample-overlay-export/output.golden b/test/data/sample-overlay-export/output.golden
deleted file mode 100644
index 57a2a68..0000000
--- a/test/data/sample-overlay-export/output.golden
+++ /dev/null
@@ -1,172 +0,0 @@
-< MakePackageSet :
-    { packagesDir : Text
-    , packageSetFile : Text
-    , packageSet :
-        { compiler : Text
-        , packages :
-            List
-              { mapKey : Text
-              , mapValue :
-                  { source :
-                      < FromGit :
-                          { url : Text
-                          , revision : Text
-                          , subdir : Optional Text
-                          }
-                      | FromHackage : { name : Text, version : Text }
-                      | FromLocal : Text
-                      | FromTarball : Text
-                      >
-                  , modifiers :
-                      { doBenchmark : Bool
-                      , doCheck : Bool
-                      , doJailbreak : Bool
-                      , enableProfiling : Bool
-                      , includeBenchmarks : Bool
-                      , includeExecutables : Bool
-                      , includeTests : Bool
-                      }
-                  , policy : List < Keep | Pin >
-                  , flags : List < Enable : Text | Disable : Text >
-                  }
-              }
-        }
-    }
-| MakeOverlay :
-    { packagesDir : Text
-    , overlayFile : Text
-    , overlay :
-        { compiler : Text
-        , packages :
-            List
-              { mapKey : Text
-              , mapValue :
-                  { source :
-                      < FromGit :
-                          { url : Text
-                          , revision : Text
-                          , subdir : Optional Text
-                          }
-                      | FromHackage : { name : Text, version : Text }
-                      | FromLocal : Text
-                      | FromTarball : Text
-                      >
-                  , modifiers :
-                      { doBenchmark : Bool
-                      , doCheck : Bool
-                      , doJailbreak : Bool
-                      , enableProfiling : Bool
-                      , includeBenchmarks : Bool
-                      , includeExecutables : Bool
-                      , includeTests : Bool
-                      }
-                  , policy : List < Keep | Pin >
-                  , flags : List < Enable : Text | Disable : Text >
-                  }
-              }
-        }
-    }
->.MakeOverlay
-  { packagesDir = "pkgs/"
-  , overlayFile = "overlay.nix"
-  , overlay =
-    { compiler = "ghc-9.4.2"
-    , packages =
-      [ { mapKey = "Cabal-syntax"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromGit
-                { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-                , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-                , subdir = Some "Cabal-syntax/"
-                }
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "lens"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromHackage
-                { name = "lens", version = "5.2" }
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "myPackage"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromLocal
-                "myPackage/"
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "network-mux"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromTarball
-                "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      ]
-    }
-  }
\ No newline at end of file
diff --git a/test/data/sample-overlay/input.dhall b/test/data/sample-overlay/input.dhall
deleted file mode 100644
index 25fc241..0000000
--- a/test/data/sample-overlay/input.dhall
+++ /dev/null
@@ -1,3 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in  { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall } : H.Overlay
diff --git a/test/data/sample-overlay/output.golden b/test/data/sample-overlay/output.golden
deleted file mode 100644
index e3e50da..0000000
--- a/test/data/sample-overlay/output.golden
+++ /dev/null
@@ -1,95 +0,0 @@
-{ compiler = "ghc-9.4.2"
-, packages =
-  [ { mapKey = "Cabal-syntax"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromGit
-            { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-            , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-            , subdir = Some "Cabal-syntax/"
-            }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "lens"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromHackage
-            { name = "lens", version = "5.2" }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "myPackage"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromLocal
-            "myPackage/"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "network-mux"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromTarball
-            "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/test/data/sample-package-set-export/input.dhall b/test/data/sample-package-set-export/input.dhall
deleted file mode 100644
index 77f0664..0000000
--- a/test/data/sample-package-set-export/input.dhall
+++ /dev/null
@@ -1,8 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in  H.HorizonExport.MakePackageSet
-      { packageSetFile = "initial-packages.nix"
-      , packagesDir = "pkgs"
-      , packageSet =
-        { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall }
-      }
diff --git a/test/data/sample-package-set-export/output.golden b/test/data/sample-package-set-export/output.golden
deleted file mode 100644
index 17aeb8e..0000000
--- a/test/data/sample-package-set-export/output.golden
+++ /dev/null
@@ -1,172 +0,0 @@
-< MakePackageSet :
-    { packagesDir : Text
-    , packageSetFile : Text
-    , packageSet :
-        { compiler : Text
-        , packages :
-            List
-              { mapKey : Text
-              , mapValue :
-                  { source :
-                      < FromGit :
-                          { url : Text
-                          , revision : Text
-                          , subdir : Optional Text
-                          }
-                      | FromHackage : { name : Text, version : Text }
-                      | FromLocal : Text
-                      | FromTarball : Text
-                      >
-                  , modifiers :
-                      { doBenchmark : Bool
-                      , doCheck : Bool
-                      , doJailbreak : Bool
-                      , enableProfiling : Bool
-                      , includeBenchmarks : Bool
-                      , includeExecutables : Bool
-                      , includeTests : Bool
-                      }
-                  , policy : List < Keep | Pin >
-                  , flags : List < Enable : Text | Disable : Text >
-                  }
-              }
-        }
-    }
-| MakeOverlay :
-    { packagesDir : Text
-    , overlayFile : Text
-    , overlay :
-        { compiler : Text
-        , packages :
-            List
-              { mapKey : Text
-              , mapValue :
-                  { source :
-                      < FromGit :
-                          { url : Text
-                          , revision : Text
-                          , subdir : Optional Text
-                          }
-                      | FromHackage : { name : Text, version : Text }
-                      | FromLocal : Text
-                      | FromTarball : Text
-                      >
-                  , modifiers :
-                      { doBenchmark : Bool
-                      , doCheck : Bool
-                      , doJailbreak : Bool
-                      , enableProfiling : Bool
-                      , includeBenchmarks : Bool
-                      , includeExecutables : Bool
-                      , includeTests : Bool
-                      }
-                  , policy : List < Keep | Pin >
-                  , flags : List < Enable : Text | Disable : Text >
-                  }
-              }
-        }
-    }
->.MakePackageSet
-  { packagesDir = "pkgs/"
-  , packageSetFile = "initial-packages.nix"
-  , packageSet =
-    { compiler = "ghc-9.4.2"
-    , packages =
-      [ { mapKey = "Cabal-syntax"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromGit
-                { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-                , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-                , subdir = Some "Cabal-syntax/"
-                }
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "lens"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromHackage
-                { name = "lens", version = "5.2" }
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "myPackage"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromLocal
-                "myPackage/"
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      , { mapKey = "network-mux"
-        , mapValue =
-          { source =
-              < FromGit :
-                  { url : Text, revision : Text, subdir : Optional Text }
-              | FromHackage : { name : Text, version : Text }
-              | FromLocal : Text
-              | FromTarball : Text
-              >.FromTarball
-                "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-          , modifiers =
-            { doBenchmark = False
-            , doCheck = False
-            , doJailbreak = True
-            , enableProfiling = True
-            , includeBenchmarks = True
-            , includeExecutables = True
-            , includeTests = True
-            }
-          , policy = [] : List < Keep | Pin >
-          , flags = [] : List < Enable : Text | Disable : Text >
-          }
-        }
-      ]
-    }
-  }
\ No newline at end of file
diff --git a/test/data/sample-package-set/input.dhall b/test/data/sample-package-set/input.dhall
deleted file mode 100644
index fb3be21..0000000
--- a/test/data/sample-package-set/input.dhall
+++ /dev/null
@@ -1,4 +0,0 @@
-let H = ../../../dhall/package.dhall
-
-in    { compiler = "ghc-9.4.2", packages = toMap ../packages.dhall }
-    : H.PackageSet
diff --git a/test/data/sample-package-set/output.golden b/test/data/sample-package-set/output.golden
deleted file mode 100644
index e3e50da..0000000
--- a/test/data/sample-package-set/output.golden
+++ /dev/null
@@ -1,95 +0,0 @@
-{ compiler = "ghc-9.4.2"
-, packages =
-  [ { mapKey = "Cabal-syntax"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromGit
-            { url = "https://gitlab.haskell.org/ghc/packages/Cabal"
-            , revision = "e714824c6e652bf894f914bc57feccc15759668a"
-            , subdir = Some "Cabal-syntax/"
-            }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "lens"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromHackage
-            { name = "lens", version = "5.2" }
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "myPackage"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromLocal
-            "myPackage/"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  , { mapKey = "network-mux"
-    , mapValue =
-      { source =
-          < FromGit : { url : Text, revision : Text, subdir : Optional Text }
-          | FromHackage : { name : Text, version : Text }
-          | FromLocal : Text
-          | FromTarball : Text
-          >.FromTarball
-            "https://input-output-hk.github.io/cardano-haskell-packages/package/network-mux-0.2.0.0.tar.gz"
-      , modifiers =
-        { doBenchmark = False
-        , doCheck = False
-        , doJailbreak = True
-        , enableProfiling = True
-        , includeBenchmarks = True
-        , includeExecutables = True
-        , includeTests = True
-        }
-      , policy = [] : List < Keep | Pin >
-      , flags = [] : List < Enable : Text | Disable : Text >
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/version b/version
new file mode 100644
index 0000000..faef31a
--- /dev/null
+++ b/version
@@ -0,0 +1 @@
+0.7.0
-- 
GitLab