Description
The IO functions included in base delimited into small, composable classes.
Description
An attempt to break up the monolithic IO monad into small, composable classes that can be used to restrict a function to only having access to, say, functions to work with the standard pipes, or a function that can access the environment. The motivation for this library is to allow people to make a stricter contract than simply "this function does IO", and express through the type system exactly what IO is being performed.