A Haskell library providing separation of effects on the type level, effectively splitting up the monolithic IO-monad into more limited capabilities.