[Haskell-cafe] How to spot Monads, Applicatives ...

martin martin.drautzburg at web.de
Fri Jun 17 19:04:54 UTC 2016

Am 06/15/2016 um 07:10 PM schrieb Albert Y. C. Lai:
> On 2016-06-15 11:54 AM, martin wrote:
>> Paticularly I am having difficulties with the *->* instances. E.g. why is the state "s" in the state monad the fixed
>> type and the "a" the type parameter? When I am writing state code without the State monad the two look like equal
>> candidates. Why not have "State a" monad, which threads an a-typed value and spits out states?
> You mean like this?
> newtype MyState a s = Mk {unMk :: a -> (s, a)}

No, I meant

newtype MyState a s = Mk {unMk :: s -> (s, a)}

More information about the Haskell-Cafe mailing list