diff --git a/horizon-spec/example.dhall b/horizon-spec/example.dhall index 0e43c88fecfcf2ccc57c4905afb859a8786b3b0c..0fc56ff4a3a7d54a7fee58c51d480982dd84b0b6 100644 --- a/horizon-spec/example.dhall +++ b/horizon-spec/example.dhall @@ -1,6 +1,6 @@ let H = ./package.dhall - sha256:cb66c78876ebce1b47a192b7ae9c5eb58e77d12f243cf74e0e3a87022adf5faa + sha256:f52fc6fc1f8569c1afbc6be778f751242592127164666ffe2e8a9cbe7f2059a8 let packages = { Cabal = H.callHackage "Cabal" "3.8.1.0" @@ -144,7 +144,8 @@ let packages = , xml = H.callHackage "xml" "1.3.14" } -in { packageSetFile = "initial-packages.nix" - , packagesDir = "pkgs/" - , packageSet = { compiler = "ghc-9.4.4", packages = toMap packages } - } +in H.HorizonExport.MakePackageSet + { packageSetFile = "initial-packages.nix" + , packagesDir = "pkgs/" + , packageSet = { compiler = "ghc-9.4.4", packages = toMap packages } + } diff --git a/horizon-spec/package.dhall b/horizon-spec/package.dhall index e85993a6f95966f215cfea1f47d42e4bbcf95c91..3f0c134a5126fdcfae77550d286c3965f564f379 100644 --- a/horizon-spec/package.dhall +++ b/horizon-spec/package.dhall @@ -76,12 +76,22 @@ let PackageList = List PackageEntry let PackageSet = { compiler : Compiler, packages : PackageList } -let HorizonExport = +let Overlay = PackageSet + +let PackageSetExportSettings = { packagesDir : Directory , packageSetFile : FilePath , packageSet : PackageSet } +let OverlayExportSettings = + { packagesDir : Directory, overlayFile : FilePath, overlay : Overlay } + +let HorizonExport = + < MakePackageSet : PackageSetExportSettings + | MakeOverlay : OverlayExportSettings + > + let callHackage : Name → Version → HaskellPackage.Type = λ(name : Name) → @@ -129,8 +139,11 @@ in { Attr , HorizonExport , Modifiers , Name + , OverlayExportSettings + , Overlay , PackageEntry , PackageList + , PackageSetExportSettings , PackageSet , Policy , Revision