Katharos
A functional programming and concurrency library for Python. Katharos pairs algebraic abstractions ( Functor , Applicative , Monad , Semigroup , Monoid ) and concrete types like Maybe , Result , ImmutableList , and IO with message-passing concurrency built on the same functional core. The two halves share one idea: model errors, effects, and concurrent communication as composable, type-safe values. A concurrent hand-off returns a Result , so "the channel closed" is something you handle, not an exception you catch.
Installation
pip install katharos
Or using uv
uv add katharos
What it looks like
Before: scattered None checks and exception handling:
user = find_user ( user_id ) if user is None : return None account = find_account ( user ) if account is None : return None return account . discount
After: do -notation that short-circuits cleanly on Nothing :
... continue reading