Close a file descriptor in a concurrency-safe way (GHC only). If you are using threadWaitRead or threadWaitWrite to perform blocking I/O, you *must* use this function to close file descriptors, or blocked threads may not be woken.
Any threads that are blocked on the file descriptor via threadWaitRead or threadWaitWrite will be unblocked by having IO exceptions thrown.

Map each element of a structure to an action, evaluate these actions from left to right, and ignore the results.

Close a file descriptor in a race-safe way.

Map each element of a structure to a monadic action, evaluate these actions from left to right, and ignore the results.

Extend a generic MonadPlus transformation by a type-specific case

Right-to-left Kleisli composition of monads. (>=>), with the arguments flipped

Left-to-right Kleisli composition of monads.

Extend a generic monadic transformation by a type-specific case

gunfold :: Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a

Make a generic monadic transformation for MonadPlus; use "const mzero" (i.e., failure) instead of return as default.

gfoldl :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a

Make a generic monadic transformation; start from a type-specific case; resort to return otherwise

ext1M :: (Monad m, Data d, Typeable1 t) => (forall e. Data e => e -> m e) -> (forall f. Data f => t f -> m (t f)) -> d -> m d

Type extension of monadic transformations for type constructors

ext2M :: (Monad m, Data d, Typeable2 t) => (forall e. Data e => e -> m e) -> (forall d1 d2. (Data d1, Data d2) => t d1 d2 -> m (t d1 d2)) -> d -> m d

Type extension of monadic transformations for type constructors