Add some instances for Monoid/Applicative (#8797)
authorAustin Seipp <austin@well-typed.com>
Fri, 28 Feb 2014 20:53:40 +0000 (14:53 -0600)
committerAustin Seipp <austin@well-typed.com>
Fri, 28 Feb 2014 21:42:15 +0000 (15:42 -0600)
commit1a9abe7a1a3c77a028cf23640368cb45527d5834
treea06c0bc421210d38816f592890f4e3610a7a78ed
parentf932b79948f0f8e2ac354cdcaea21c5b7c59a27a
Add some instances for Monoid/Applicative (#8797)

As noted in the ticket, there's no particular reason why there aren't
Generic, Typeable, and Data instances for the types in the
Monoid/Applicative modules.

Furthermore, Product and Sum should also have Num instances as well as
Edward noted.

Aside from that, this patch also changes the dependency chain slightly -
it moves the Monoid Proxy instance into Data.Monoid and out of
Data.Proxy.

Why? Cycles (of course). Monoid depends on Typeable. Typeable uses
Proxy. Proxy uses Monoid. Boom. Luckily, Proxy only depends on Monoid
outside of the GHC namespace, so the fix is easy and clean.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Control/Applicative.hs
Data/Monoid.hs
Data/Proxy.hs