Mon Aug 17 10:09:24 EDT 2015

Trying out Applicative representation

This instances gives trouble when Feedback is changed to []

instance (Feedback m r s1, Feedback m r s2) => Feedback m r (s1, s2) where
  feedback (i1, i2) f =
    feedback i1 $ \s1 ->
    feedback i2 $ \s2 -> do
       ((s1', s2'), o) <- f (s1, s2)
       return (s2', (s1', o))

So let's first to the Applicative r change, then figure out the fold.