If c is a Monoid, you can use the RWS a c b () type instead and combine them with sequence_.

On 4 Jun 2016 5:19 pm, "martin" <martin.drautzburg@web.de> wrote:
Hello all,

I have a number of functions, whose type is something like this:

f:: a -> b -> (b, c)

i.e. it returns a modified b and an additional c.

Now I want to write a combinator, which assembles a list of such functions into a single one. This combinator will have
to thread the bs from one function to the next and accumulate the cs into a single c.

While I was able to write this using a fold, I am not happy with it (my first attempt had a bad error in it, which is
always a bad sign).

Are you aware of any idioms, how to do such things on the beaten track?





_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe