{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; dhall-haskell = { url = "https://github.com/darkkirb/dhall-haskell"; flake = false; type = "git"; submodules = true; ref = "nix-hotfix"; }; }; outputs = { self, nixpkgs, flake-utils, dhall-haskell, }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [self.overlays.default]; }; in { formatter = pkgs.alejandra; packages = rec { inherit (import "${dhall-haskell}/nix/shared.nix" {inherit system;}) dhall dhall-nix dhall-nixpkgs; dhall-nix-lib = pkgs.dhallPackages.callPackage ./package.nix {}; }; devShells.default = pkgs.mkShell { nativeBuildInputs = [self.packages.${system}.dhall self.packages.${system}.dhall-nix]; }; }) // { overlays.default = _: prev: { dhallPackages = prev.dhallPackages.override (self: { overrides = _: super: rec { Prelude = super.Prelude.overridePackage { rev = "v22.0.0"; sha256 = "157x95yw9hibpifa8figawgclnc1d1bapmbp1zw60l2viy936b83"; }; inherit (self.packages.${prev.emptyDirectory.system}) dhall-nix-lib; dhall-to-nix-package = super.callPackage ./pkgs/dhall-to-nix-package.nix {}; import-dhall-package = path: let drv = super.callPackage (path + "/package.nix") { buildDhallDirectoryPackage = dhall-to-nix-package; }; in import "${drv}" (import ./runtime.nix prev.lib); }; }); inherit (self.packages.${prev.system}) dhall dhall-nix dhall-nixpkgs; }; }; }