[Haskell-cafe] Automatically Deriving Numeric Type Class Instances

Jake jake.waksbaum at gmail.com
Fri Apr 22 19:39:47 UTC 2016


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 at gmail.com> wrote:

> Hi Jake
>
> https://hackage.haskell.org/package/applicative-numbers can generate
> those instances.
>
> Regards
> Adam
> On Apr 22, 2016 10:23 AM, "Jake" <jake.waksbaum at 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 a
>> data Triple a = Triple a a a
>>
>> I wrote these pretty trivial instances for Num and Floating:
>>
>> instance Num a => Num (Pair a) where
>>   (+) = liftA2 (+)
>>   (*) = liftA2 (*)
>>   abs = liftA abs
>>   negate = liftA negate
>>   signum = liftA signum
>>   fromInteger = pure . fromInteger
>>
>> instance Fractional a => Fractional (Pair a) where
>>   (/) = liftA2 (/)
>>   recip = liftA recip
>>   fromRational = pure . fromRational
>>
>> and 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 at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160422/cbd411cb/attachment.html>


More information about the Haskell-Cafe mailing list