purescript / purescript-transformers

Monad and comonad transformers
BSD 3-Clause "New" or "Revised" License
69 stars 44 forks source link

MonadAsk is over constrained #144

Open natefaubion opened 2 years ago

natefaubion commented 2 years ago

The law for MonadAsk ask >>= \_ -> ask = ask only requires Applicative ask *> ask = ask. You can't execute effects depending on the environment, but you can compute results depending on the environment.

example = f <$> ask <*> other
JordanMartinez commented 2 years ago

Would the class be renamed to ApplicativeAsk?

natefaubion commented 2 years ago

I think it would be ApplyAsk. Technically, only Apply is needed for the law.