Proposal: Make Q an instance of Applicative
The Q type:
newtype Q a = Q { unQ :: forall m. Quasi m => m a}
currently has an instance for Monad and Functor. I always find it surprising when a monad doesn't have an Applicative instance. So I would like to propose adding an instance for Applicative as well.
I also propose to make Applicative a superclass of the Quasi class:
class (Monad m, Applicative m, Functor m) => Quasi m where ...
During the discussion on the libraries list Michael Snoyman, Wren ng Thornton and Edward Kmett replied positively. There were no objections.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.0.3 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Template Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |