{ inputs.nixpkgs.url = "flake:nixpkgs"; #inputs.symantic-base.url = "git+https://git.code.sourcephile.fr/~julm/symantic-base?ref=main"; #inputs.symantic-base.url = "git+ssh://git@losurdo.wg/julm/symantic-base?ref=main"; inputs.symantic-base.url = "git://git.sourcephile.fr/haskell/symantic-base"; inputs.symantic-base.inputs.nixpkgs.follows = "nixpkgs"; outputs = inputs: let pkg = "symantic-plaintext"; lib = inputs.nixpkgs.lib; forAllSystems = f: lib.genAttrs lib.systems.flakeExposed (system: f rec { inherit system; pkgs = inputs.nixpkgs.legacyPackages.${system}; haskellPackages = pkgs.haskellPackages.extend (with pkgs.haskell.lib; hfinal: hsuper: { ${pkg} = buildFromSdist (hfinal.callCabal2nix pkg ./. {}); symantic-base = buildFromSdist (hfinal.callCabal2nix "symantic-base" inputs.symantic-base {}); }); }); in { # nix -L build defaultPackage = forAllSystems ({haskellPackages, ...}: haskellPackages.${pkg}); # nix -L develop devShell = forAllSystems ({pkgs, haskellPackages, ...}: haskellPackages.shellFor { packages = ps: [ ps.${pkg} ]; nativeBuildInputs = [ haskellPackages.cabal-install haskellPackages.ghcid haskellPackages.haskell-language-server haskellPackages.hlint pkgs.git-chglog pkgs.reuse ]; withHoogle = false; }); }; }