{ withSystem, inputs, ... }:
{
  perSystem =
    {
      config,
      pkgs,
      lib,
      inputs',
      ...
    }:
    {
      devShells.idris2 =
        let
          libPackages = with pkgs; [
            readline70
            openssl
          ];
        in
        pkgs.mkShell {
          buildInputs =
            with pkgs;
            [
              # Idris toolchain
              inputs'.nixpkgs-unstable.legacyPackages.idris2Packages.pack
              inputs'.nixpkgs-unstable.legacyPackages.idris2
              pkg-config
              gmp
              gnumake
              chez
              rlwrap
            ]
            ++ libPackages;
          shellHook = ''
            export LD_LIBRARY_PATH=${lib.makeLibraryPath libPackages}
          '';
        };
    };
}