
That, right, just to clarify, my instances are like that:
instance Applicative (Todo a) where
pure = Done
Todo as <*> Todo bs = Todo $ as ++ bs
Todo as <*> _ = Todo as
Done f <*> r = fmap f r
instance Monad (Todo a) where
return = Done
Todo as >>= _ = Todo as
Done a >>= f = f a
It's basically accumulating on the Todos. Either [a] b does not fit because
it does not accumulate on the a's.
On Tue, Aug 16, 2016 at 11:12 PM, David Kraeutmann
I went from the assumption that he just wants something like
instance Monad (Todo a)
and that implies that b is the type inside of the monad.
On 08/16/2016 08:23 PM, David Kraeutmann wrote:
This looks functionally identical to type Todo a b = Either [a] b, and Either has a Monad instance. On 8/16/2016 8:21 PM, Corentin Dupont wrote:
Hi guys, is there some library with a Monad (+Applicative, Functor...) instance of the following type:
data Todo a b = Todo [a] | Done b
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.