úÎ(&š     Safe4€Class for types that keep IOError information. Instantiate this for an error type for using the safe functions from this module.+Transforms an IOError on another error typeSafe alternative to liftIOGSafe alternative to lift for an stack that implements MonadBaseControl.Safe>L !Interruptible monad transformers.ÀA monad transformer can be interrupted if it returns its final context from its type creator, and if it is possible to hoist this context again into the monad at the begining of its execution. For example, StateT can be interrupted because  runStateTŠ returns its final state, and because its state can be set at the type creation. Error can not be hoisted, thus is can not be interrupted.eInterruptible transformers can be stacked so that their execution is resumed by composition of their resumeu functions, and their data by the composition of their data constructors at the inverse order. That is, in the stack: 4(Monad m, Interruptible i, Interruptible j) => i j m,Both i and j can be resumed by the function resume . resume , and given initI :: a -> RSt i a and initJ :: a -> RSt j a , the total context is given by  initJ . initI.UThe context data constructors vary with each Interruptible, as well as its signature.Context data of the transformer5Resumes the execution of an interruptible transformer%Cretes an interrupted EitherT context&Unwraps an interrupted EitherT context %Creates an interrupted StateT context %Unwraps an interrupted StateT context &Creates an interrupted WriterT context &Unwraps an interrupted WriterT context &Creates an interrupted ReaderT context&Unwraps an interrupted WriterT context#Creates an interrupted RWST context#Unwraps an interrupted RWST context   Safe>LdFolds the second list with the function applied to the first, intercalating the evaluation. That is: òintercalateWith resume f [a00, a10, a20] [b1, b2] = do a01 <- resume (f b1) a00 a11 <- resume (f b1) a10 a21 <- resume (f b1) a20 a02 <- resume (f b2) a11 a12 <- resume (f b2) a21 a22 <- resume (f b2) a31 return [a02, a12, a22] %Usefull for consuming lazy sequences.pThe resume function is parametric for allowing resuming deeper Interruptible chains, with resume2, resume3, etc.        inter_Glu1UDytniAKvgSUkHooBvControl.Monad.Trans.SafeIO!Control.Monad.Trans.Interruptible'Control.Monad.Trans.Interruptible.ClassIOErrorDerivation coerceIOErrorsafeIOsafeCT InterruptibleRStresume inEitherTCtxpeelEitherTCtx inStateTCtx peelStateTCtx inWriterTCtxpeelWriterTCtx inReaderTCtxpeelReaderTCtx inRWSTCtx peelRWSTCtxresume2resume3resume4resume5intercalateWith hoistResult$fInterruptibleRWST$fInterruptibleReaderT$fInterruptibleWriterT$fInterruptibleStateT$fInterruptibleEitherT