Hello. I have been exploring cats, but I'm having a hard time finding clean, idiomatic ways to integrate it into my projects; certainly this is my fault and a lack of understanding. Are there any non-toy examples for study, or anyone willing to field some (very naïve) questions?
Specifically, Either
seems as though it should play very nicely with cats' channels as a monadic type, but I invariably end up with code sprinkled with either/branch-*
because I can't figure out the right way to use the Either
s after using mlet
to unwrap values that have been threaded through channels.