Thanks Adam! My only concern is that this package appears to use the CPP to generate the instances which at least to me feels more hacky than the mechanism by which instances are usually derived, like for Show or Eq or other classes.
I'd also be interested if someone could explain how those instances are derived if I could do something similar myself in this case.
On Fri, Apr 22, 2016, 15:14 adam vogt <vogt.adam@gmail.com> wrote:Hi Jake
https://hackage.haskell.org/package/applicative-numbers can generate those instances.
Regards
AdamOn Apr 22, 2016 10:23 AM, "Jake" <jake.waksbaum@gmail.com> wrote:Is it possible to automatically derive instances of Numeric type classes like Num, Fractional, Real, Floating, etc?I currently have two datatypes, Pair and Triple, that are defined like this:data Pair a = Pair a adata Triple a = Triple a a aI wrote these pretty trivial instances for Num and Floating:instance Num a => Num (Pair a) where(+) = liftA2 (+)(*) = liftA2 (*)abs = liftA absnegate = liftA negatesignum = liftA signumfromInteger = pure . fromIntegerinstance Fractional a => Fractional (Pair a) where(/) = liftA2 (/)recip = liftA recipfromRational = pure . fromRationaland practically identical instances for Triple as well.Is there anyway to have GHC derive these instances and the other numeric type classes?Thanks,Jake_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe