Hi Corentin,
That's called the "Validation applicative". I'm on my phone so I can't link, but that phrase should give you a starting point.
Note that your type actually has no valid Monad instance that is consistent with the Applicative. That's because while the Applicative accumulates data, the Monad throws it away every time.
Chris
That, right, just to clarify, my instances are like that:It's basically accumulating on the Todos. Either [a] b does not fit because it does not accumulate on the a's.
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 aOn Tue, Aug 16, 2016 at 11:12 PM, David Kraeutmann <kane@kane.cx> wrote: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-caf e
>> 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-caf e
> 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-caf e
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.