3 ms·
While compelling, flattening doesn't make something a monad, does it? Not snark, if that's a consequence of one of the three laws, I'm just unaware of it. I kno
by eximius 7y ago
While compelling, flattening doesn't make something a monad, does it? Not snark, if that's a consequence of one of the three laws, I'm just unaware of it. I know what monads are but I'm not practised with them.
But of left identity, right identity, and associativity, what is violated?
- pinopinopino 7y agoSo, I was a bit wrong with the monoid, I meant to add them on typelevel by using a sumtype. Sorry, sometimes bit confused after work. No flattening doesn't make something a monad. Return and flattening are the interesting operations of a monad, that together with the laws makes the monad. >But of left identity, right identity, and associativity, what is violated? Well, there is not something violated perse, but you cannot write a flatten operation for something like this: R<R<u32, E1>, E2> However you could write it for this: R<R<u32, E1 + E2>, E1 + E2> (That was what I should have written above btw) Because now the error types are the same.