Mismatched types when types are the same but paths differ for some reason

You should not have mod wsl; in both main.rs and lib.rs. Each time you write mod foo, the code for that module gets pasted into the program at that point. If you include the same module twice, you end up with two distinct modules that happen to have the same source code.

Instead, each module should be declared exactly once, in its parent module or crate, usually in your library (lib.rs and its submodules).

In main.rs and any of its submodules, remove the mod wsl; line, and import items from your library (wink) instead:

use wink::wsl::invoker::Invoker;
use wink::wsl::inv::invocablecategorylist::InvocableCategoryList;