Let a scenario carry whether it is a file or a directory `scenarioDir`, `scenarioDirRecur` and `scenarioDirOfDirs` took a `FilePath` and handed the callback a `FilePath`, so the one thing a caller has to know about a scenario, whether it is a file or a directory, was the one thing the type would not tell them. `scenarioDirOfDirs` handing out a directory and `scenarioDir` handing out a file had the same signature. They now take a `Path b Dir` and hand over a `Path b File` or a `Path b Dir`. ## The base is the caller's `Path b Dir` rather than `Path Rel Dir`, so that: - a relative directory names its scenarios relative to the working directory, which is what the `FilePath` version did and what the doc examples rely on; - a scenario run over a `withSystemTempDir` still works with the absolute path it hands you, which is what this repository's own `ScenarioSpec` does. Pinning the input to `Path Rel Dir` would have read more strictly and broken the second one. ## Breaking The signatures changed rather than gaining typed siblings, so this is a major bump to 0.30.0.0. Call sites pass `[reldir|test_resources/scenarios|]` where they passed `"test_resources/scenarios"`, and reach for `fromRelFile` where they used the scenario as a `FilePath`. Test descriptions are unchanged, separator and all, so a `--filter` over them still selects the same tests. ## What it bought `sydtest-test` no longer depends on `filepath`. Joining a scenario directory to a file inside it was the only thing it wanted `System.FilePath` for, and `Path`'s own `</>` does that with the types lined up. ## Review loop ``` nix build .#checks.x86_64-linux.release ```