{
  description = "A Nix wrapper for Neovim+Lazy";
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs";
    flake-utils.url = "github:numtide/flake-utils";
    # Cannot override nixpkgs input as nix-unit fails to build with nixVersions.git
    nix-unit.url = "github:nix-community/nix-unit";
  };
  outputs =
    {
      self,
      nixpkgs,
      flake-utils,
      nix-unit,
      ...
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = nixpkgs.legacyPackages."${system}";
        lib = nixpkgs.lib;
        unit = nix-unit.packages."${system}".nix-unit;
      in
      import ./default.nix {
        inherit pkgs lib;
        nix-unit = unit;
      }
    )
    // ({
      nixosModules = {
        nvim-lazy = import ./modules/nvim-lazy/nixosModule.nix;
        default = self.nixosModules.nvim-lazy;
      };
      homeManagerModules.nvim-lazy = import ./modules/nvim-lazy/homeManager.nix;
      homeManagerModule = self.homeManagerModules.nvim-lazy;
      tests = import ./tests { inherit (nixpkgs) lib; };
    });
}