{ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; outputs = { self, nixpkgs }: let forAllSystems = f: nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ] ( system: f (import nixpkgs { inherit system; }) system ); in { devShells = forAllSystems ( pkgs: sys: { default = pkgs.mkShell { packages = with pkgs.ocamlPackages; [ dune_3 ocaml angstrom angstrom-unix ppx_inline_test ocaml-lsp ocamlformat ocamlformat-rpc-lib utop ]; }; } ); packages = forAllSystems ( pkgs: sys: { default = pkgs.ocamlPackages.buildDunePackage { pname = "inshellah"; version = "0.1"; src = ./.; nativeBuildInputs = [ pkgs.git ]; buildInputs = with pkgs.ocamlPackages; [ dune_3 ocaml angstrom angstrom-unix ]; meta.mainProgram = "inshellah"; }; } ); nixosModules.default = { pkgs, ... }: { imports = [ ./nix/module.nix ]; programs.inshellah.package = self.packages.${pkgs.stdenv.hostPlatform.system}.default; }; }; }