Created a new progress type and renamed the old to distinguish them.
Added fold markers.
Reverted back to before ResultType was put in its own module.

It turns out that using type families for this purpose is
incredibly cumbersome in practice.
ResultType -> VisitorMode, RunResult -> AllMode, SearchResult -> FirstMode
Revamp in progress.