{
  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}
        '';
      };
  };
}