{ description = "A very basic flake"; inputs = { flake-utils = { url = "github:numtide/flake-utils"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, flake-utils }: { overlay = final: prev: { haskellPackages = prev.haskellPackages.override ( old: { overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: rec { reddit-pub = f.callPackage ./reddit_pub {}; reddit-lib = f.callPackage ./reddit_lib {}; reddit-tags = f.callPackage ./reddit_tags {}; }); } ); }; } // flake-utils.lib.eachSystem ["x86_64-linux" "x86_64-darwin"] ( system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; hp = pkgs.haskellPackages; in rec { packages.reddit-pub = pkgs.haskell.lib.justStaticExecutables hp.reddit-pub; packages.reddit-pub-dhall = pkgs.dhallPackages.callPackage ./dhall.nix {}; packages.reddit-tags = pkgs.haskell.lib.justStaticExecutables hp.reddit-tags; defaultPackage = packages.reddit-pub; devShell = hp.shellFor { packages = h: [h.reddit-pub h.reddit-tags]; withHoogle = true; buildInputs = with pkgs; [ dhall-lsp-server entr cabal-install hp.hlint stylish-haskell ghcid rrdtool jq sqlite-interactive sqlite-interactive hp.graphmod hp.dhall-nixpkgs hp.haskell-language-server ]; }; } ); }