Metadata revisions for interruptible-0.1.1.1

Package maintainers and Hackage trustees are allowed to edit certain bits of package metadata after a release, without uploading a new tarball. Note that the tarball itself is never changed, just the metadata that is stored separately. For more information about metadata revisions, please refer to the Hackage Metadata Revisions FAQ.

No. Time User SHA256
-r2 (interruptible-0.1.1.1-r2) 2016-07-09T14:51:03Z marcosdumay 995d15d4358b5c31e289ac2840132c938c2635ae359e3624af7157e71667ce80
  • Changed description from

    Given an inner monad @M@ and a transformer @T@, if T is an interruptible transformer,
    it becomes possible to intercalate functions over its context with functions over the
    inner monad. That is, code like this:
    
    @
    runT (f 1 >>= g)
    where
    f :: Int -> T M a
    g :: a -> T M b
    @
    
    Can be broken up like this:
    
    @
    do
    let c0 = inTCtx 1
    c1 <- resume f c0
    _ <- resume g c2
    @
    
    That makes it possible to intercalate the execution of different contexts, and
    treat contexts like data, for iterating or returning them.
    
    As shown on the example, interruptible transformers are resumed with the @resume@ function.
    State may be managed by specialized functions usually named as @inTransfomerCtx@ and
    @peelTransformerCtx@ that enclose a value in an initial context and retrieve the
    value from a context.
    
    Interruptible transformers can be stacked. On this case, they must be resumed with a
    composition of @resume@ calls, and their contexts must be created and peeled on the inverse
    order that they appear on the stack. Like:
    
    @
    do
    let c0 = inT2Ctx . inT1Ctx $ 1
    c1 <- (resume . resume) f c0
    _ <- (resume . resume) g c1
    where
    f :: Monad m => Int -> T1 T2 M a
    g :: Monad m => a -> T1 T2 M b
    @
    
    For convenience, the @Interruptible@ module exports the @resume2@ to @resume5@
    functions as composotions of resume. They can be composed further as in
    @resume7 = resume3 . resume4@ if necessary.
    
    This package also contains the appliable instantiations of Interruptible for the mtl transformers,
    the @intercalateWith@ function, that intercalates calls of a function through a list
    of contexts and parameters, and the @SafeIO@ module that lifts IOException treatment from the
    base monad into the current resumed context.
    to
    Given an inner monad @M@ and a transformer @T@, if T is an interruptible transformer,
    it becomes possible to intercalate functions over its context with functions over the
    inner monad. That is, code like this:
    
    > runT (f 1 >>= g)
    > where
    >     f :: Int -> T M a
    >     g :: a -> T M b
    
    Can be broken up like this:
    
    > do
    > let c0 = inTCtx 1
    > c1 <- resume f c0
    > _ <- resume g c2
    
    That makes it possible to intercalate the execution of different contexts, and
    treat contexts like data, for iterating or returning them.
    
    As shown on the example, interruptible transformers are resumed with the @resume@ function.
    State may be managed by specialized functions usually named as @inTransfomerCtx@ and
    @peelTransformerCtx@ that enclose a value in an initial context and retrieve the
    value from a context.
    
    Interruptible transformers can be stacked. On this case, they must be resumed with a
    composition of @resume@ calls, and their contexts must be created and peeled on the inverse
    order that they appear on the stack. Like:
    
    > do
    > let c0 = inT2Ctx . inT1Ctx $ 1
    > c1 <- (resume . resume) f c0
    > _ <- (resume . resume) g c1
    > where
    >     f :: Monad m => Int -> T1 T2 M a
    >     g :: Monad m => a -> T1 T2 M b
    
    For convenience, the @Interruptible@ module exports the @resume2@ to @resume5@
    functions as composotions of resume. They can be composed further as in
    @resume7 = resume3 . resume4@ if necessary.
    
    This package also contains the appliable instantiations of Interruptible for the mtl transformers,
    the @intercalateWith@ function, that intercalates calls of a function through a list
    of contexts and parameters, and the @SafeIO@ module that lifts IOException treatment from the
    base monad into the current resumed context.

-r1 (interruptible-0.1.1.1-r1) 2016-07-09T00:28:14Z marcosdumay 4ccd041b348c855e2bb7dee1ed51b23097e5e348e9705b1dea24d7d5875de33e
  • Changed description from

    Given an inner monad @M@ and a transformer @T@, if T is an interruptible transformer,
    it becomes possible to intercalate functions over its context with functions over the
    inner monad. That is, code like this:
    
    @
    runT (f 1 >>= g)
    where
    f :: Int -> T M a
    g :: a -> T M b
    @
    
    Can be broken up like this:
    
    @
    do
    let c0 = inTCtx 1
    c1 <- resume f ct1
    _ <- resume g ct2
    @
    
    That makes it possible to intercalate the execution of different contexts, and
    treat contexts like data, for iterating or returning them.
    
    As shown on the example, interruptible transformers are resumed with the @resume@ function.
    State may be managed by specialized functions usually named as @inTransfomerCtx@ and
    @peelTransformerCtx@ that enclose a value in an initial context and retrieve the
    value from a context.
    
    Interruptible transformers can be stacked. On this case, they must be resumed with a
    composition of @resume@ calls, and their contexts must be created and peeled on the inverse
    order that they appear on the stack. Like:
    
    @
    do
    let c0 = inT2Ctx . inT1Ctx $ 1
    c1 <- (resume . resume) f ct1
    _ <- (resume . resume) g ct2
    where
    f :: Monad m => Int -> T1 T2 M a
    g :: Monad m => a -> T1 T2 M b
    @
    
    For convenience, the @Interruptible@ module exports the @resume2@ to @resume5@
    functions as composotions of resume. They can be composed further as in
    @resume7 = resume3 . resume4@ if necessary.
    
    This package also contains the appliable instantiations of Interruptible for the mtl transformers,
    the @intercalateWith@ function, that intercalates calls of a function through a list
    of contexts and parameters, and the @SafeIO@ module that lifts IOException treatment from the
    base monad into the current resumed context.
    to
    Given an inner monad @M@ and a transformer @T@, if T is an interruptible transformer,
    it becomes possible to intercalate functions over its context with functions over the
    inner monad. That is, code like this:
    
    @
    runT (f 1 >>= g)
    where
    f :: Int -> T M a
    g :: a -> T M b
    @
    
    Can be broken up like this:
    
    @
    do
    let c0 = inTCtx 1
    c1 <- resume f c0
    _ <- resume g c2
    @
    
    That makes it possible to intercalate the execution of different contexts, and
    treat contexts like data, for iterating or returning them.
    
    As shown on the example, interruptible transformers are resumed with the @resume@ function.
    State may be managed by specialized functions usually named as @inTransfomerCtx@ and
    @peelTransformerCtx@ that enclose a value in an initial context and retrieve the
    value from a context.
    
    Interruptible transformers can be stacked. On this case, they must be resumed with a
    composition of @resume@ calls, and their contexts must be created and peeled on the inverse
    order that they appear on the stack. Like:
    
    @
    do
    let c0 = inT2Ctx . inT1Ctx $ 1
    c1 <- (resume . resume) f c0
    _ <- (resume . resume) g c1
    where
    f :: Monad m => Int -> T1 T2 M a
    g :: Monad m => a -> T1 T2 M b
    @
    
    For convenience, the @Interruptible@ module exports the @resume2@ to @resume5@
    functions as composotions of resume. They can be composed further as in
    @resume7 = resume3 . resume4@ if necessary.
    
    This package also contains the appliable instantiations of Interruptible for the mtl transformers,
    the @intercalateWith@ function, that intercalates calls of a function through a list
    of contexts and parameters, and the @SafeIO@ module that lifts IOException treatment from the
    base monad into the current resumed context.

-r0 (interruptible-0.1.1.1-r0) 2016-06-08T20:48:18Z marcosdumay 59779c5e514b8c93af6e65a3b0f06844b3a766fdf6c8946f73a6779401134b7d